[Programmers / Level1] 완주하지 못한 선수(Java)

이하얀·2024년 4월 16일
0

💡 Info



입출력 조건



입출력 예시



문제 이해

  • 완주하지 못한 선수 이름을 리턴
    • participant 배열과 completion 배열을 정렬한 뒤, 비교해서 없는 이름만 participant 배열로 리턴하도록 하기!


💭 생각한 알고리즘

풀이 시간 : 17분
1. participant 배열 정렬
2. completion 배열 정렬
3. 두 배열 비교 -> 없는 것만 participant 배열에 담아서 출력

import java.util.*;

class Solution {
    
    static int i;
    
    public String solution(String[] participant, String[] completion) {
        
        // 1. participant 배열 정렬
        Arrays.sort(participant);
        
        // 2. completion 배열 정렬
        Arrays.sort(completion);
        
        // 3. 두 배열 비교 -> 없는 것만 participant 배열에 담아서 출력
        for(i=0; i<completion.length; i++){
            if(completion[i] != participant[i]){
                return participant[i];
            }
        }
        return participant[i];
    }
}


❌ 오답체크

  • 두 배열에서 모두 존재하는 첫번째 이름을 결과로 출력하는 문제가 있었음.

    • 두 배열을 비교할 때 equals를 사용해 비교하도록 수정하여 해결
  • 또한, 테스트에 통과했으나 효율성 테스트에서 1가지가 실패하는 문제가 있었음.

    • i 선언을 전역변수가 아닌 Solution 내에서 선언하는 것으로 해결
//before
import java.util.*;

class Solution {
    
    static int i;
    
    ...
    
for(i=0; i<completion.length; i++){
            if(completion[i] != participant[i]){
                return participant[i];
            }
        }
        return participant[i];

//after
import java.util.*;

class Solution {

...

int i;

for(i=0; i<completion.length; i++){
            if(!participant[i].equals(completion[i])){
                return participant[i];
            }
        }
        return participant[i];


💭 최종 풀이

  1. participant 배열 정렬
  2. completion 배열 정렬
  3. 두 배열을 equals 비교 -> 없는 것만 participant 배열에 담아서 출력
import java.util.*;

class Solution {
    
    public String solution(String[] participant, String[] completion) {
        
        // 1. participant 배열 정렬
        Arrays.sort(participant);
        
        // 2. completion 배열 정렬
        Arrays.sort(completion);
        
        int i;
        
        // 3. 두 배열 비교 -> 없는 것만 participant 배열에 담아서 출력
        for(i=0; i<completion.length; i++){
            if(!participant[i].equals(completion[i])){
                return participant[i];
            }
        }
        return participant[i];
    }
}

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE 개발 기록 노트☘️

0개의 댓글