알고리즘

[프로그래머스, 자바] 완주하지 못한 선수

hminor 2024. 2. 26. 12:30

풀이

  • HashMap을 활용한 풀이 방법으로 
  • hm에 participant의 key가 있다면 값을 1 증가 시키고
  • 없다면 1로 초기화 한 다
  • completion 의 개수만큼 1 감소 시킨 다음
  • 마지막으로 값이 0이 아닌 경우를 찾아 return하여 해결

 

import java.util.HashMap;

public class 완주하지못한선수 {
    public static void main(String[] args) {
        Solution s = new Solution();
        String[] participant = {"mislav", "stanko", "mislav", "ana"};
        String[] completion = {"stanko", "ana", "mislav"};
        System.out.println(s.solution(participant,completion));
    }
}

class Solution {
    public String solution(String[] participant, String[] completion) {
        HashMap<String,Integer> hm = new HashMap<>();
        String result = "";
        for (String i: participant) {
            if (hm.containsKey(i)) hm.put(i,hm.get(i)+1);
            else hm.put(i,1);
        }
        for (String i: completion) hm.put(i,hm.get(i)-1);
        for (String i: hm.keySet()) {
            if (hm.get(i) != 0) {
                result = i;
                break;
            };
        }
        return result;
    }
}