목록프로그래머스 (6)
study record
더 맵게 PriorityQueue 를 사용하는 문제 heap은 정렬하지 않아도 peek()이나 poll()하면 가장 작은 값이 나온다. 힙은 우선순위 큐를 위해 만들어진 자료구조로, 부모노드 키 값이 자식 노드 키 값보다 항상 크거나 작다. import java.util.PriorityQueue; public class Spicer { public int solution(int[] scoville, int K) { int answer = 0; PriorityQueue heap = new PriorityQueue(); for (int i = 0; i K) { if(heap.siz..
완주하지못한 선수 HashMap을 이용한 문제 풀이 hash.put(key, value), hash.get(key)를 이용한 문제풀이를 진행했다. import java.util.HashMap; public class Hash { public static void main(String[] args) { String[] participant = {"marina", "josipa", "nikola", "vinko", "filipa"}; String[] completion = {"josipa", "filipa", "marina", "nikola"}; System.out.println(solution(participant, completion)); } public static String solution(Stri..
타겟넘버 문제 재귀를 활용한 BFS 문제 풀이 public class TargetNumber { public int solution(int[] numbers, int target) { int answer = 0; answer = bfs(numbers, target, numbers[0], 1) + bfs(numbers, target, -numbers[0], 1); return answer; } public int bfs(int[] numbers, int target, int sum, int i) { if(i == numbers.length) { if(sum == target) { return 1; } else { return 0; } } int result = 0; result += bfs(numbers,..
보석쇼핑 HashSet으로 보석의 개수를 구한다. gems[] 배열을 돌아가면서 큐에 넣으며, HashMap을 사용해 중복되는 보석의 개수들을 저장한다. 이때 큐.peek()과 HashMap.get()을 통해 큐의 첫번째 보석 개수가 1개를 초과하면 startPoint를 갱신해준다. hashMap의 사이즈와 HashSet의 크기가 같으면 모든 보석을 다 담은 것이므로 이때의 큐의 시작지점과 큐 사이즈를 통해 시작 진열대 번호와 끝 진열대 번호를 구해낸다. 연속된 것들을 처리해야하므로 Queue를 사용하고, 중복되지 않은 개수를 알기 위해 HashSet, 중복되는 것들을 알고 처리하기 위해 HashMap을 사용! 이해가 안되는 부분은 length를 마지막에 체크하는 부분이다. 그냥 break;하면 되는 거..