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

Choi Seong Jin·2022년 11월 11일
0

프로그래머스

목록 보기
7/33

문제 링크 : 완주하지 못한 선수


내 풀이

public String solution(String[] participant, String[] completion) {
        int i = 0;
        Arrays.sort(participant);
        Arrays.sort(completion);
        for(i = 0; i < completion.length; i++){
            if(!participant[i].equals(completion[i])){
                break;
            }
        }
        return participant[i];
    }

내가 푼 방법은 양 문자열을 정렬한 뒤, 서로 비교해가면서 값이 다른 곳에서 멈춘 후, 반환하는 방식을 선택했다.

다른 풀이를 살펴보니 HashMap을 사용해서 푼 방법이 있어서 해당 방법도 공유하고자 한다.

다른 사람의 풀이

public String solution(String[] participant, String[] completion) {
        String answer = "";
        HashMap<String, Integer> hm = new HashMap<>();
        for (String player : participant) hm.put(player, hm.getOrDefault(player, 0) + 1);
        for (String player : completion) hm.put(player, hm.get(player) - 1);

        for (String key : hm.keySet()) {
            if (hm.get(key) != 0){
                answer = key;
            }
        }
        return answer;
    }
profile
백엔드 개발자 지망생입니다!

0개의 댓글