목록전체 글 (287)
개발자는 기록이 답이다
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bbLKaT/btsv7txR4Cg/UEqS0KMZGvC0KJrB5evK1K/img.png)
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 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dhjawK/btsv7j9Sc4N/jUfackk3gt2bnDhWkEgPr0/img.png)
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 루프처럼 되는데, 입력값이 커질수록 시간 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ykkPQ/btsv7g6lCMW/P39PnXnjLPBn5CadJQfRY0/img.png)
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 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dGs5KJ/btswbfFcQHX/BEg22xWupltVGaqhEg7k0K/img.png)
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) :..