개발공부/코딩테스트 연습문제

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

ku-na 2022. 1. 6. 11:54

문제 설명 및 제한사항

 

풀이

import java.util.Arrays;
class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        Arrays.sort(participant);
        Arrays.sort(completion);
       
        for(int i = 0; i < completion.length; i++) { 
            if(!participant[i].equals(completion[i])){
                answer = participant[i];       
                break;
            }
            if(i == completion.length-1){
                answer = participant[i+1];
            }
        }
        return answer;
    }
}

 

++

1. sort (정렬) : 선언 - import java.util.Arrays;

                   사용 - Array.sort(Element); // 오름차순 정렬

처음에는 다중반복문을 사용했다. 그런데 효율성에서 전부 실패를 경험했다.

효율성이 떨어지는건 알고 있었지만 생각하기 귀찮았던 내가 멍청했다.

그래서 어떻게 하지.. 맵은 내가 잘 못쓰는데... 이러고 있었다.

그러다 정렬이 생각나서 두 배열을 정렬하면 되겠다 해서 잘 풀렸던 문제 같다.

그리고 다른분들 보니 리턴을 바로 해주면 되는데 나는 멍청하게 마지막에 리턴을 했다.

그래서 고친 코드는

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])){
                return participant[i];       
            }
        }
        return participant[participant.length-1];
    }
}

다음과 같다. 훨씬 보기 편해진 것 같다.