코딩테스트

[Level 1] 완주하지 못한 선수

기남 2020. 7. 9. 21:10

공식적인 코딩테스트 첫문제이다. 두근두근

다음부터는 힌트를 잘 보고 해봐야겠다. 자바의 개념이 아직 기억이 나지 않아 for문을 통해 풀어보았다.

 

해시라고 쓰여져있는 힌트를 보지 못했다.

 

[ 알고리즘 ]

반복문을 이용하여 participant(참여자)와 completion(완주자)를 비교한다.

반복문을 이용하여 participant(참여자)에 있는 중복된 사람이 있는지 비교한다.

status는 true이면, 같은 것이 없어 answer에 저장되는 것이고, false이면, 이름이 같거나 중복되지 않는다는 boolean이다.

 

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        //System.out.println(participant.length);
        //System.out.println(completion.length);
        Boolean status = false;
        for (int i=0; i<participant.length; i++){
            for(int j=0; j<completion.length; j++){
                if(participant[i].equals(completion[j])){
                    status = true;
                }
            }
             for (int k=i+1; k<participant.length; k++){
                if(participant[i].equals(participant[k]))
                    status = false;
             }
             if(status == false)
                answer = participant[i];
            else
                status = false;
        }
        return answer;
    }
}

 

코드 채점을 했더니 10포인트를 얻었다.

해시를 사용하지 않았더니 정확성, 효율성을 잡지 못했다. 내일 다시 해봐야겠다.