본문 바로가기
프로그래밍 문제/프로그래머스

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

by 테크케찰 2020. 9. 1.

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

 

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

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

programmers.co.kr

import java.io.*;
import java.util.*;

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

두 배열을 먼저 오름차순으로 정렬한 후 비교합니다.

만약 participant 배열과 completion 배열이 같은 인덱스에서 다른다면 for문을 break하고 그 인덱스의 participant 값을 결과값으로 지정해줍니다.

만약에 오름차순으로 정렬했을 때 participant의 가장 마지막 요소가 completion 배열에 없는 경우에는 for문을 통해서 답을 구할 수 없습니다.

그렇기 떄문에 마지막에 result 값이 ""일 때 participant 배열의 마지막 요소를 결과값으로 지정해줍니다