목록자료구조 (97)
개발자는 기록이 답이다

5. K번째 큰 수 예시 입력 1 10 3 13 15 34 23 45 65 33 11 26 42 예시 출력 1 143 내가 푼 틀린 풀이 일단 문제를 제대로 이해 못했다. 나는 입력받은 정수배열을 내림차순해서 가장 큰 수 3개를 더하면 되는 줄 알았는데, 그게 아니라 각 정수배열에 있는 값들을 3개 뽑아서 합한 것 들을 내림차순해서 k번째 수에있는 걸 고르는 거였다. import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Scanner; public class Main { public int solution(int n , int k, int[] arr) { int answer = ..

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 루프처럼 되는데, 입력값이 커질수록 시간 ..

2. 아나그램(해쉬) 예시 입력 1 AbaAeCe baeeACA 예시 출력 1 YES 예시 입력 2 abaCC Caaab 예시 출력 2 NO 내가 푼 풀이(Time: 157ms Memory: 27MB) 해쉬맵을 별로 안써봐서 출력해가면서 풀어야 했다. 강의를 다 듣고 나면 프로그래머스에서 해쉬맵 문제도 풀어봐야겠다. import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public String solution(String a, String b) { String answer = "YES"; HashMap firstMap = new HashMap(); HashMap secondMap = new ..