| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- java
- 정렬
- DP
- 오블완
- greedy
- 완전탐색
- 자바
- 알고리즘
- BFS
- spring security 설정
- 티스토리챌린지
- DFS
- 이분탐색
- 그리디
- map
- 너비우선탐색
- TreeMap
- 프로그래머스lv3
- hackerrank
- 동적계획법
- HashMap
- 코딩테스트
- 우선순위큐
- 혼공얄코
- 프로그래머스
- 프로그래머스Lv2
- 파라메트릭서치
- Comparator
- 백트래킹
- Comparable
- Today
- Total
목록HashMap (4)
쉽게 쉽게
📌 핵심 요약슬라이딩 윈도우 — 오른쪽으로 넓히고, 조건을 만족하면 왼쪽을 당긴다HashMap의 size()가 판정 기준 — 개수가 0이 된 키를 지워야 종류 수가 정확해진다기록은 축소 직전에 — 윈도우가 유효한 상태에서 답 후보를 남긴다 목차프로그래머스 — 2020 카카오 인턴십보석 쇼핑gems 길이 ≤ 100,000난이도: [Lv.3]진열대에 보석이 일렬로 놓여 있다. 모든 종류의 보석을 최소 한 개씩 포함하는 가장 짧은 구간의 시작과 끝 번호를 구한다. 번호는 1부터 시작하고, 길이가 같은 구간이 여러 개면 시작 번호가 작은 쪽을 고른다.풀이 과정전체 보석 종류 수를 먼저 구한다오른쪽 끝을 한 칸씩 늘리며 윈도우에 보석을 담는다윈도우가 모든 종류를 담으면, 담긴 상태를 유지하는 한 왼쪽을 계속 당..
📌 핵심 요약셋은 같은 Map 인터페이스, 다른 내부 구조 — 해시 테이블(HashMap), 해시 테이블 + 연결 리스트(LinkedHashMap), 레드-블랙 트리(TreeMap)순서가 필요 없으면 HashMap — 평균 O(1)로 가장 빠르다. 대부분의 상황에서 기본 선택지다넣은 순서가 필요하면 LinkedHashMap — HashMap의 속도를 유지하면서 순서만 추가로 기억한다키가 정렬돼 있어야 하면 TreeMap — O(log n)으로 조금 느리지만, 범위 탐색이라는 강력한 무기가 생긴다 목차1 셋은 무엇이 다른가Map은 키(key)와 값(value)을 짝지어 저장하는 자료구조입니다. 자바에서 Map은 인터페이스이고, 실제로 동작하는 것은 이를 구현한 클래스들입니다. Java — 같은 인터페이스..
📌 핵심 요약정렬 기준이 3개인 문제 — 장르 총합 내림차순 → 장르 내 재생수 내림차순 → 고유번호 오름차순. 기준을 세는 것에서 자료구조가 결정된다.Map 두 개로 분리 — 장르 → 총 재생수와 장르 → 곡 목록을 따로 둔다. 하나로 합치려는 시도가 오히려 코드를 복잡하게 만든다.인덱스만 담을지, 객체로 묶을지 — 두 방식 모두 정답이지만, 정렬 기준이 늘어날수록 Comparable을 구현한 클래스 쪽이 확장에 유리하다.컴파일 에러 하나 — compareTo에 public을 빠뜨리면 인터페이스보다 접근 범위가 좁아져 컴파일되지 않는다. 목차1 문제 정리PROGRAMMERS #42579베스트앨범곡 수 ≤ 10,000 · 재생수 ≤ 10,000난이도: Level 3스트리밍 사이트에서 장르별로 가장 많이..
📌 핵심 요약개수를 셀 때는 merge() — getOrDefault보다 짧고 의도가 분명하다값이 컬렉션이면 computeIfAbsent() — null 체크가 사라진다getOrDefault()는 맵에 넣지 않는다 — 읽기 전용이다키와 값을 둘 다 쓸 때는 entrySet() — keySet() + get()은 조회를 두 번 한다순회 중에 put·remove하면 예외가 난다 — removeIf()를 쓴다 목차1 기본 메서드메서드하는 일반환put(k, v)저장 (있으면 덮어쓴다)이전 값 또는 nullget(k)조회값 또는 nullremove(k)삭제삭제된 값 또는 nullremove(k, v)값까지 일치할 때만 삭제booleancontainsKey(k)키 존재 확인booleancontainsValue(v..
