- 난이도: Lv1
프로그래머스 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42576
풀이 링크(GitHub): hayannn/CodingTest_Java/프로그래머스/1/42576. 완주하지 못한 선수
풀이 시간 : 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];
}
}
두 배열에서 모두 존재하는 첫번째 이름을 결과로 출력하는 문제가 있었음.
또한, 테스트에 통과했으나 효율성 테스트에서 1가지가 실패하는 문제가 있었음.
//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];
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];
}
}