목록해쉬맵 (8)
개발자는 기록이 답이다

8. 응급실 예시 입력 1 5 2 60 50 70 80 90 예시 출력 1 3 예시 입력 2 6 3 70 60 90 60 60 60 예시 출력 2 4 내가 푼 틀린 풀이 문제를 제대로 이해 못했다.나는 해당 문제를 큐를 안써도 내림차순으로 정렬한뒤 3번째인 환자의 카운팅횟수만 넘겨주면 되는거 아닌가? 생각했는데 ,대기목록에 있는 환자의 순서는 그대로 둬야한다. 내림차순하면 대기목록 환자 순서들까지 바뀌어버려서 이렇게 하면 m번째 환자의 우선순위만 고려되는 것이다. import java.util.*; // 틀린 문제 public class Main { public int solution(int n, int m, int[] arr) { int target = arr[m]; System.out.println(..

4. 모든 아나그램 찾기(Hash, sliding window : 시간복잡도 O(n)) 예시 입력 1 10 3 13 15 34 23 45 65 33 11 26 42 예시 출력 1 143 내가 푼 첫번째 틀린 풀이 맨 처음에는 map에서 equals함수가 된다는걸 모르고 엄청난 뻘짓을 했다,, map.get(key)로 나온 value값이 서로 일치하는지로 해봤더니, 이전에 A부분에서 지나간건 체크를 못하더라. import java.util.HashMap; import java.util.Scanner; public class Main { public int solution(String str, String t) { int answer = 0; HashMap target = new HashMap(); for ..

3. 매출액의 종류(Hash, sliding window) 예시 입력 1 7 4 20 12 20 10 23 17 10 예시 출력 1 3 4 4 3 내가 푼 틀린 풀이(Time: 1979ms Memory: 35MB) - Time Limit Exceeded 해쉬랑 슬라이딩 윈도우 사용하면 된다그래서, 해쉬셋을 사용했는데, 시간 초과가 나왔다. 입력값이 10만 이상이면 명시적으로 하나의 for문이라도 rt를 이전으로 옮겨서 다시 for문을 돌게 해서 시간 초과가 나는 것 같다. 시간 초과 문제는 rt와 lt를 조작하여 슬라이딩 윈도우를 이전으로 돌리는 부분에서 발생하는 것 같다. 주어진 코드에서 rt와 lt를 이동시키면서 슬라이딩 윈도우를 관리하면 결국 중첩된 for 루프처럼 되는데, 입력값이 커질수록 시간 ..

1. 학급 회장(해쉬) 예시 입력 1 15 BACBACCACCBDEDE 예시 출력 1 C 강의 풀이(Time: 159ms Memory: 27MB) HashMap에 대한 이해가 필요하다. map.put(key,value) : map의 데이터 자료 생성 map.get(key) : key에 해당하는 value값을 리턴 map.getOrDefault(key, 0) : map 객체에 key가 있다면 value값을 가져오고, 없으면 0을 리턴 map.keySet() : 존재하는 key를 전부 탐색 - for each에서 사용 map.containsKey(key): 맵 객체에 해당하는 key가 존재하는지 확인 후 boolean 리턴 map.size() : 존재하는 key의 개수를 리턴 map.remove(key) :..