코딩테스트

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

코드사냥꾼 2020. 4. 9. 14:45
문제

 

 

풀이 ( 점수 : 50/100 )

 

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        
        // 완주했냐 안했냐 판별
        boolean finish = true;
        
        for(int i=0; i<participant.length;i++){
            finish=true;
            for(int j=0; j<completion.length; j++){
               if(participant[i].equals(completion[j])){
                   completion[j]=null;
                   finish=false;
                   break;
               }        
            }
            if(finish){
               answer+=participant[i];  
            }
        }
        return answer;
    }
}

이 문제와 입출력 값을 딱 보자마자 '각 배열에 중복된 값이 있는지 검사를 해야겠다' 라는 생각이 먼저 들었습니다. 그래서 for문을 두 개 돌려서 값을 비교했습니다. 참여한 인원들을 조사할때 무조건 true값을 주었고, 참여한 사람이 완주한 사람의 값과 같다면 완주한 사람의 자리값을 null로 두고 false값을 주었습니다. 왜냐하면 return 되는 값은 중복된 값이 없는 사람의 이름이 나오기 때문입니다. 테스트는 통과했으나, 효율성 면에서는 0점을 받은 코드입니다.

💡 다른 풀이

효율성 50, 테스트 50 총 100점 받은 코드이다.

'코딩테스트' 카테고리의 다른 글

[구름LEVEL] 공백 없애기  (0) 2021.03.12
[구름LEVEL] 전기요금  (0) 2021.03.12
[프로그래머스] 모의고사  (0) 2020.04.09
[프로그래머스] 핸드폰 번호 가리기  (0) 2020.04.05