[Java, 자바] 프로그래머스 타겟 넘버
알고리즘/프로그래머스2024. 3. 18. 13:20[Java, 자바] 프로그래머스 타겟 넘버

프로그래머스 👉🏻 https://school.programmers.co.kr/learn/courses/30/lessons/43165 # 난이도 : LV2 # 알고리즘 분류 : DFS, BFS 문제내용 제한사항 입출력 예 풀이방법 이번 문제는 numbers 배열의 모든 경우의 수를 구하는 문제입니다 ! 추가적인 조건으로 더하기와 빼기가 골고루 섞여야한다는 점 ! DFS를 진행하기 위해서 매개변수로 Level과 누적합, 배열과 target을 매개변수로 전달하였습니다. DFS를 호출할 때 L과 sum은 0을 초기값으로 전달해주고 DFS내부에서 다음 DFS로 호출할 때 L은 1을 더해주고, 더하기와 빼기가 모두 이루어져야하기 때문에 sum은 numbers[L] 값을 더한 값과 뺀 값을 따로 전달해주었습니다. L..

[Java, 자바] 프로그래머스 주식가격 문제
알고리즘/프로그래머스2024. 3. 18. 13:08[Java, 자바] 프로그래머스 주식가격 문제

프로그래머스 👉🏻 https://school.programmers.co.kr/learn/courses/30/lessons/42584 # 난이도 : LV2 문제내용 제한사항 입출력 예 풀이방법 이번 문제는 설명이 많이 이해하기 어려웠습니다....저 뿐만 아니라 많은 사람이 그렇게 느낀 것 같더라구요.... 이해하기 쉽게 잘 정리해 놓으신 분의 내용을 참고하여 풀이하였습니다. 간단하게 요약하자면 각 초의 주가를 기준으로 해당 초부터 n초 사이에 가격이 떨어지지 않는 시간을 구하는 문제이더라구요 ! 그래서 Queue를 활용하여 문제 풀이를 진행하였으며, target이라는 변수에 Q에 있는 주가를 poll한 뒤 Q에 남은 값을 활용하여 answer의 인덱스를 증가 시켜주었며, target가 Q의 주가보다 클 때..

[Java, 자바] 프로그래머스 귤 고르기
알고리즘/프로그래머스2024. 3. 6. 19:05[Java, 자바] 프로그래머스 귤 고르기

프로그래머스 👉🏻 https://school.programmers.co.kr/learn/courses/30/lessons/138476 # 난이도 : LV.2 문제내용 제한사항 입출력 예 풀이방법 이번 문제는 우선순위 큐와 Map을 통해서 해결하였습니다 :) Map을 통해 형식으로 데이터를 넣어줍니다. (다른 문제에서 언급했던 getOrDefault 메서드 사용하기 ! ⭐️잊지마세요) 종류의 수만 구하면 되는 문제이기 때문에 내림차순으로 생성해 놓았던 우선순위 큐에 Map에 누적해 놓은 누적 개수를 모두 저장해줍니다 ! 마지막으로 반복문은 k가 0보다 클 때만 실행되고 반복문 안에서 Q에 들어있는 값을 확인한 뒤 k보다 큰 수일 경우 answer을 증가하여 반복문을 탈출해주고 Q의 값이 k보다 작을 경우 ..

[Java, 자바] 프로그래머스 게임 맵 최단거리(BFS)
알고리즘/프로그래머스2024. 3. 6. 14:06[Java, 자바] 프로그래머스 게임 맵 최단거리(BFS)

프로그래머스 👉🏻 https://school.programmers.co.kr/learn/courses/30/lessons/1844 # 난이도 : LV.2 문제내용 제한사항 입출력 예 풀이방법 좌표를 저장할 Point 클래스를 생성한 뒤 BFS메서드와 Queue를 통해 문제를 해결하였습니다 ! 상하좌우 탐색이 이루어져야 하기 때문에 dx, dy 변수를 생성하여 현재의 위치에서 상하좌우 탐색을 진행하였습니다. 중요한 포인트는 기존에 탐색이 이루어진 부분은 1로 초기화를 해줘야 된다는 점 ! (무한루프가 돌 수 있습니당) 탐색은 최단거리로 진행되어야 하며, 도착지점에 값이 제일 빨리 도착하는 수로 초기화되고 최단거리가 아닌 경우의 수가 도착지점에 도착할 경우 탐색이 이루어진 부분은 1로 초기화를 하였기 때문에..

image