본문 바로가기

Coding Test/프로그래머스

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

import java.util.Arrays;

class Solution {
    public String solution(String[] participant, String[] completion) {
    Arrays.sort(participant);
    Arrays.sort(completion);

    for (int i=0; i<completion.length; i++) {
        if (participant[i].equals(completion[i])) {
            continue;
        } else {
            return participant[i];
        }
    }

    return participant[participant.length-1];
        
    }
}

import java.util.HashMap;

class Solution {
    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;
    }
}

해시맵을 이용한 풀이


 

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        List<String> list = new ArrayList<>();
        for(String s : participant){
            list.add(s);
        }
        
        for(String s2 : completion){
            list.remove(s2);
        }
        
        return list.get(0);
    }
}

// 효율성 테스트 실패 코드