
문제 풀이 : 마라톤에 참여한 선수 중 완주하지 못한 선수의 이름을 출력해야 함
hash는 키 값이 중복되지 않게 저장되는데 마라톤 선수의 이름이 중복될 수 있다고 해서
방법이 생각이 나지 않아 chatgpt에게 방법을 물어봤음 ( 다음에 다시 혼자 풀어볼 것 ! )
key값에 참가자 이름, value값에 사람 수를 작성하라고 알려줌
import java.util.HashMap;
class Solution {
public String solution(String[] participant, String[] completion) {
String result = "";
HashMap<String, Integer> map = new HashMap<>();
for(String name : participant) {
if(map.containsKey(name)) {
int count = map.get(name);
map.put(name, count+1);
} else {
map.put(name, 1);
}
}
for(String name : completion) {
if(map.get(name)==1) {
map.remove(name);
} else {
int count = map.get(name);
map.put(name, count-1);
}
}
for (String name : map.keySet()) {
if (map.get(name) > 0) {
result = name;
}
}
return result;
}
}
내가 작성한 코드
마지막에 출력 부분도 어떻게 string 형태로 출력하는지 몰라 오래 걸렸는데
이건 hashmap을 잘 몰라서 그런 것 같아서 개념 공부의 필요성을 느낌
'알고리즘 오답노트 > JAVA' 카테고리의 다른 글
| [programmers] 같은 숫자는 싫어 (0) | 2024.09.20 |
|---|---|
| [programmers] 의상 (0) | 2024.09.20 |
| [programmers] 전화번호 목록 (4) | 2024.09.13 |
| [programmers] 폰켓몬 (0) | 2024.09.11 |