본문 바로가기

Backend/Algorithm

4. 배열, sort - 완주하지 못한 선수

 

 

입출력 예

participantcompletionreturn

[leo, kiki, eden] [eden, kiki] leo
[marina, josipa, nikola, vinko, filipa] [josipa, filipa, marina, nikola] vinko
[mislav, stanko, mislav, ana] [stanko, ana, mislav] mislav

입출력 예 설명

예제 #1
leo는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #2
vinko는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #3
mislav는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.

 

 

코드:

 

import java.util.Arrays;
class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        String temp = "";
        
        Arrays.sort(participant); //sort로 오름차순 정렬
        Arrays.sort(completion);
        
        int i = 0;
        
        while(i < completion.length){
            if(!completion[i].equals(participant[i])){
                temp = participant[i]; //completion 인덱스와 participant[i] 인덱스가 안맞을 때, 임시정답(temp)은 participant[i]
                break;
            }else{
                i++;
            }
        }
        
        if(!temp.equals("")){ // temp(=participant[i]) 가 빈 값이 아니라면
            answer = temp; // 정답 = 임시정답 
        }else{ 이 외의 경우라면 (temp(=participant[i]) 가 빈 값이라면)
            answer = participant[participant.length-1]; // 정답 = participant[전체길이-1: 마지막인덱스]
        }
        
        return answer;
    }
}

 

 

 

 

접근방법:

 

'Backend > Algorithm' 카테고리의 다른 글

6. Math.max , ArrayList - 모의고사  (0) 2020.10.29
5. switch - 2016년  (0) 2020.10.28
3. 최대공약수와 최소공배수 (Java)  (0) 2020.10.20
2. SQL 최소값 구하기  (0) 2020.10.20
1. SQL 최대값 구하기  (0) 2020.10.20