알고리즘

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

파뱁 2022. 3. 15. 22:43
728x90

<문제 설명>

https://programmers.co.kr/learn/courses/30/lessons/42576

 

코딩테스트 연습 - 완주하지 못한 선수

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수

programmers.co.kr

마라톤에 참여한 선수와 완주한 선수의 목록이 주어질 때 완주 하지 못한 선수가 누구인지 찾는 문제이다.

 

입출력의 예는 다음과 같다.

participant completion return
["leo", "kiki", "eden"] ["eden", "kiki"] "leo"
["marina", "josipa", "nikola", "vinko", "filipa"] ["josipa", "filipa", "marina", "nikola"] "vinko"
["mislav", "stanko", "mislav", "ana"] ["stanko", "ana", "mislav"] "mislav"

 

<문제 풀이 아이디어>

마라톤에 참여한 선수와 완주한 선수 모두를 정렬한 뒤,

순서대로 탐색하여 완주하지 못한 선수를 찾는다. 만약 완주하지 못한 선수를 찾을 경우 카운트를 초기화해서 서로 같은 위치로 인식시켜 마저 진행한다.

 

<문제 풀이 코드>

import java.util.*;

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(!completion[i].equals(participant[i])){
                answer = participant[i];
                break;
            }
            else{
                answer = participant[i+1];
            }
        }
        
        return answer;
    }
}

채점 결과

728x90
반응형