반응형
https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Idea
map.getOrDefault(p, 0) + 1 에서 key에 대한 vaule를 1 증가시켜주고, completion 배열에서 key를 찾으면 -1 해준다. 마지막에 value가 0이 아닌 key를 찾아내면 그게 답!
Review
map.getOrDefault(K key, V defaultValue) 는 특정 키에 대응하는 값을 반환하는 메서드입니다. 이 메서드는 주어진 키에 대한 값이 없을 경우, 지정한 기본값을 반환합니다. 이 메서드를 사용하면, 키가 없는 경우에도 기본값을 안전하게 반환할 수 있습니다. 즉, map.getKey()를 사용했을 때 null을 반환받는 것을 방지할 수 있습니다.
HashMap에서 동일한 키에 대해 값은 하나만 존재하므로, 같은 키를 여러 번 추가할 수 없습니다. 따라서, 후속 삽입이 이루어지면 기존의 K-V 쌍에 해당하는 값이 덮어쓰여지게 됩니다.
putIfAbsent() 는 특정 키가 없는 경우에만 값을 삽입하고, 키가 이미 존재하면 아무 작업도 하지 않습니다.
Code
import java.util.HashMap;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> map = new HashMap<>();
for (String p : participant) {
map.put(p, map.getOrDefault(p, 0) + 1);
}
for (String c : completion) {
map.put(c, map.get(c) - 1);
}
for (String key : map.keySet()) {
if (map.get(key) != 0) {
answer = key;
break;
}
}
return answer;
}
}반응형
'Dev > Programmers' 카테고리의 다른 글
| [프로그래머스] 의상 (Java) (1) | 2024.12.20 |
|---|---|
| [프로그래머스] 전화번호 목록 (Java) (0) | 2024.12.20 |
| [프로그래머스] 폰켓몬 (Java) (1) | 2024.12.19 |
| [프로그래머스] 2018 KAKAO BLIND RECRUITMENT [1차] 다트 게임 (Java) (0) | 2024.12.17 |
| [프로그래머스] 단어 변환 (Java) (0) | 2024.12.17 |