본문 바로가기
Java/Programmers

[Lv.1]완주하지 못한 선수

by GLOWWW 2023. 1. 30.

public static String solution(String[] participant, String[] completion) {
        String answer = "";
        Map<String, Integer> map = new HashMap<String, Integer>();
        for(String save:completion){
            map.put(save,map.getOrDefault(save,0)+1);
        }
        for(String save:participant){
            if(map.containsKey(save)){
                int count = map.get(save) - 1;
                if(count == 0){
                    map.remove(save);
                }else{
                    map.put(save,count);
                }
            }else{
                answer = save;
            }
        }

        return answer;
    }

우선은 수정 후 효율성까지 무사히 통과한 코드이다.
아래의 코드는 정확성에서는 모두 맞았지만, 효율성은 하나도 통과하지 못한 처음 작성한 코드이다.

public static String solution(String[] participant, String[] completion) {
        String answer = "";
        Arrays.sort(participant);
        Arrays.sort(completion);
        System.out.println(Arrays.toString(participant));
        System.out.println(Arrays.toString(completion));
        for (int i = 0; i < participant.length; i++) {
            for (int j = 0; j < completion.length; j++) {
                if (participant[i].equals(completion[j])) {
                    participant[i] = "";
                    completion[j] = "";
                }
            }
        }
        for (int i = 0; i < participant.length; i++) {
            if (!participant[i].equals("")) {
                answer = participant[i];
            }
        }
        return answer;
    }

'Java > Programmers' 카테고리의 다른 글

[Lv.1]키패드 누르기  (0) 2023.01.30
[Lv.1]숫자 짝꿍  (0) 2023.01.30
[Lv.1]다트 게임  (0) 2023.01.28
[Lv.1]가장 가까운 같은 글자  (0) 2023.01.27
[Lv.1]실패율  (0) 2023.01.27

댓글