ps

해쉬-완주하지 못한 선수

롯대쌍쌍바 2021. 6. 24. 12:14

@ 실패한 코드

다음의 코드는 실패한 경우이다. 동명이인의 경우에는 해쉬에 저장하면 hashset의 특성상 중복을 저장하지 않기 때문에 동명이인이 후보자와 완주자에 동일하게 있음에도 완주자로 확인을 하지 못한다.

실패 테스트 케이스

participant

["mislav", "stanko", "mislav", "ana", "ana"]

completion

["stanko", "ana", "mislav", "mislav"]

answer

"ana"

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        HashSet<String> hash = new HashSet<String>();
        if(participant.length -1 != completion.length){
            return null;
        }
        for(String name : completion){
            hash.add(name);
        }
        for(String name : participant){
            if(!hash.contains(name)){
                return name;
            }
            else{
                hash.remove(name);
            }
        }
        return null;            
    }
}

@ 성공한 코드