-
[Programmers] Hash - 완주하지 못한 선수문제 풀이/Algorithm 2020. 7. 8. 09:52
언어: JAVA
1. 풀이 과정
이 문제는 참여자 명단과 완주자 명단을 정렬하여 두 명단의 같은 index의 값을 비교하여 해결할 수 있다.
만약 참여자 명단에 있는 모든 사람이 완주자 명단에도 있다면?? 배열을 정렬했을 때, 두 배열은 완벽히 같을 것이다.
(같은 index의 값이 모두 같다!)
따라서 같은 index의 값만 비교해 준다면 누가 완주하지 못했는지 알 수 있다!
-
참여자 명단
0
1
2
"eden"
"kiki"
"leo"
-
완주자 명단
0
1
"eden"
"kiki"
위의 두 표는 첫 번째 입출력 예의 참여자 명단과 완주자 명단을 정렬한 결과다(index와 값).
얼핏 봐도 index 0 과 index 1 의 값은 두 배열이 같은데 index 2 의 값은 참여자 명단에만 존재한다!
따라서 “leo”는 참여만했지 완주하지 못한 것이다!!
2. 주요 코드
import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { Arrays.sort(participant); Arrays.sort(completion); int i; for(i=0; i<completion.length; i++){ if(!participant[i].equals(completion[i])){ return participant[i]; } } return participant[i]; } }
Arrays.sort() 로 두 배열을 정렬한 후, for문 을 이용하여 두 배열의 index의 값을 비교하여 두 값이 다를 때 그 값을 return했다.
* 전체 코드
'문제 풀이 > Algorithm' 카테고리의 다른 글
[Programmers] 쿼드 압축 후 개수 세기 (0) 2021.05.16 [Programmers] Hash - 위장 (0) 2020.07.08 [Programmers] Hash - 전화번호 목록 (0) 2020.07.08 -