코드굽는 타자기
Programmers[42576] - 완주하지 못한 선수[Level1] 본문
링크
문제설명
- 집합 더하기 빼기
문제풀이
- 중복 고려해야함
- HashMap 사용
문제코드
import java.util.HashMap;
public class Solution {
public static String solution(String[] participant, String[] completion) {
HashMap<String, Integer> hm = new HashMap<String, Integer>();
String answer = "";
for(String p : participant) {
if(hm.containsKey(p)) {
hm.put(p, hm.get(p)+1);
}
else {
hm.put(p,1);
}
}
for(String c : completion) {
hm.put(c,hm.get(c)-1);
}
for (String key : hm.keySet()) {
if(hm.get(key)==1) {
answer = key;
break;
}
}
return answer;
}
public static void main(String[] args) {
System.out.println(solution(new String[] {"leo", "kiki", "eden"},
new String[] {"eden","kiki"}));
System.out.println(solution(new String[] {"marina", "josipa", "nikola", "vinko", "filipa"},
new String[] {"josipa", "filipa", "marina", "nikola"}));
System.out.println(solution(new String[] {"mislav", "stanko", "mislav", "ana"},
new String[] {"stanko", "ana", "mislav"}));
}
}
아쉬운점
- 제약조건 제대로 고려 못했음
- 참가자 중에는 동명이인이 있을 수 있습니다.
- Map에 Integer값을 가지고 count하도록 하였음
잘한점
- HashMap구현 및 탐색
'알고리즘 > 해시' 카테고리의 다른 글
Programmers[42579] - 베스트앨범[Level2] (0) | 2020.04.30 |
---|---|
Programmers[42578] - 위장[Level2] (0) | 2020.04.30 |
Programmers[42577] - 전화번호 목록도움말[Level2] (0) | 2020.04.30 |
Programmers[64063] - 호텔 방 배정[Level4] (0) | 2020.04.05 |
Comments