Problem
마라톤에 참여한 선수들의 명단과 완주한 선수들의 명단이 주어졌을 때
완주하지 못한 선수의 이름을 구하는 문제입니다.
단, 동명이인이 존재할 수 있습니다.
Solution
HashMap
을 사용하면 됩니다.
{ "이름": "인원수" }
의 key-value
형식을 갖게 선언해서 완주한 사람들을 전부 넣습니다.
그리고 participant
를 순회하면서 key
값이 존재하면 인원수를 하나씩 빼줍니다.
만약 인원수가 음수가 된다면 그 사람이 완주하지 못한 선수입니다.
Java Code
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
HashMap<String, Integer> map = new HashMap<>();
for (String person : completion) {
map.put(person, map.getOrDefault(person, 0) + 1);
}
for (String person : participant) {
map.put(person, map.getOrDefault(person, 0) - 1);
if (map.get(person) < 0)
return person;
}
return "";
}
}
'알고리즘 문제 > Programmers' 카테고리의 다른 글
[프로그래머스] 체육복 (Java) (1) | 2020.03.27 |
---|---|
[프로그래머스] 위장 (Java) (0) | 2019.11.26 |
[프로그래머스] 전화번호 목록 (Java) (0) | 2019.11.26 |
2018 KAKAO BLIND 캐시 (Java) (0) | 2019.09.06 |
2018 KAKAO BLIND 비밀지도 (Java) (0) | 2019.09.06 |