Question
https://school.programmers.co.kr/learn/courses/30/lessons/133502
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Code
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> map = new HashMap<>();
for(String player : participant) {
map.put(player, map.getOrDefault(player, 0) + 1);
}
for(String player : completion) {
map.put(player, map.get(player) - 1);
}
for(Map.Entry<String, Integer> entry : map.entrySet()) {
if(entry.getValue() != 0) {
answer = entry.getKey();
break;
}
}
return answer;
}
}
- HashMap<K, V> 1
- Key-Value 쌍으로 데이터를 저장하는 자료구조
- 키는 중복 불가, 값은 중복 가능
- 검색/삽입/삭제 속도가 빠름 (평균 시간 복잡도 O(1))
- 순서를 보장하지 않음 (LinkedHashMap은 순서 보장)
- 키가 같으면 덮어씀 (put 동작)
- getOrDefault(K key, V defaultValue) 2
- key가 map에 존재하면 그 key에 해당하는 value를 반환하고, 존재하지 않으면 defaultValue를 반환
- null 체크 없이 안전하게 값을 가져올 수 있음
- Map.Entry<K, V> 3
- Map 내부의 key-value 쌍을 하나의 객체처럼 다루는 인터페이스
- key와 value를 모두 조회할 수 있음
- Map을 순회할 때 각 쌍을 하나의 단위로 다루기 위해 사용
- map.entrySet()
4
- Map에 들어있는 모든 Map.Entry 객체의 집합(Set)을 반환
출처
https://hu-coding.tistory.com/104
[Java] 프로그래머스 : 완주하지 못한 선수 (feat. HashMap)
https://programmers.co.kr/learn/courses/30/lessons/42576?language=java 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라
hu-coding.tistory.com
- https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashMap.html [본문으로]
- https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html#getOrDefault(java.lang.Object,V) [본문으로]
- https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.Entry.html [본문으로]
- https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html#entrySet() [본문으로]
'Coding Test > [프로그래머스] Java' 카테고리의 다른 글
[프로그래머스 / Java] Lv.2 다음 큰 숫자 (1) | 2025.05.14 |
---|---|
[프로그래머스 / Java] Lv.2 기능개발 (0) | 2025.05.11 |
[프로그래머스 / Java] Lv.1 최소직사각형 (0) | 2025.05.08 |
[프로그래머스 / Java] Lv.1 2016년 (0) | 2025.05.07 |
[프로그래머스 / Java] Lv.1 같은 숫자는 싫어 (업데이트 중..) (0) | 2025.05.06 |