개발공부/코딩테스트 연습문제
[프로그래머스] 완주하지 못한 선수
ku-na
2022. 1. 6. 11:54
문제 설명 및 제한사항

풀이
import java.util.Arrays;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
Arrays.sort(participant);
Arrays.sort(completion);
for(int i = 0; i < completion.length; i++) {
if(!participant[i].equals(completion[i])){
answer = participant[i];
break;
}
if(i == completion.length-1){
answer = participant[i+1];
}
}
return answer;
}
}
++
1. sort (정렬) : 선언 - import java.util.Arrays;
사용 - Array.sort(Element); // 오름차순 정렬
처음에는 다중반복문을 사용했다. 그런데 효율성에서 전부 실패를 경험했다.
효율성이 떨어지는건 알고 있었지만 생각하기 귀찮았던 내가 멍청했다.
그래서 어떻게 하지.. 맵은 내가 잘 못쓰는데... 이러고 있었다.
그러다 정렬이 생각나서 두 배열을 정렬하면 되겠다 해서 잘 풀렸던 문제 같다.
그리고 다른분들 보니 리턴을 바로 해주면 되는데 나는 멍청하게 마지막에 리턴을 했다.
그래서 고친 코드는
import java.util.Arrays;
class Solution {
public String solution(String[] participant, String[] completion) {
Arrays.sort(participant);
Arrays.sort(completion);
for(int i = 0; i < completion.length; i++) {
if(!participant[i].equals(completion[i])){
return participant[i];
}
}
return participant[participant.length-1];
}
}
다음과 같다. 훨씬 보기 편해진 것 같다.