본문 바로가기
알고리즘

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

by irerin07 2019. 9. 24.
728x90

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

코드: https://github.com/irerin07/AlgorithmStudyBaek/blob/master/src/programmers_lvl_1/programmers42576.java

 

import java.util.Arrays;

public class programmers42576 {
    public static void main(String[] args) {
        String[] praticipant = {"marina", "josipa", "nikola", "vinko", "filipa"};
        String [] completion = {"josipa", "filipa", "marina", "nikola"};
        System.out.println(solution(praticipant, completion));
    }

    public static 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])){
                return participant[i];
            }else{
                answer = participant[completion.length];
            }
        }
        return answer;
    }

}

 

프로그래머스 코딩테스트 연습 문제 레벨1부터 차근차근 다시 시작.

 

주어지는 두개의 Array(participant, completion)를 정렬한 뒤에 두 Array를 비교한다.

만약 completion[i]와 Participant[i]가 다르다면 participant 배열 i번째 선수는 completion에 들지 못한 선수이므로 해당 값을 반환한다.

 

만약 completion을 끝까지 돌았지만 모두 짝이 맞았다면 participant 배열 맨 마지막에 위치한 선수가 탈락을 했으므로 participant[completion.length]를 통하여 이를 반환한다.

participant는 completion보다 항상 크기가 1 더 크기 때문에 participant[completion.length]는 배열 맨 뒤의 element를 반환할것이다.

728x90