1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.util.*;
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];
//participant 와 completion 둘다 같은 서순의 배열을 가지고 있음.
//완주하지 못한 사람이 중간 서순에 있으면 particpant[i]와 completion[i] 의 값이 다름
return answer;
}
}
//만약 다 같다 하면 participant의 마지막 애가 완주하지 못한 것이다.
answer +=participant[participant.length-1];
return answer;
}
}
|
cs |
다른 사람의 풀이 - 해쉬를 이용해서
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String,Integer> hashmap = new HashMap<>();
//participant 정보 등록 String :선수이름 , Integer 답 판별에 필요한 1
for(String player :participant) hashmap.put(player,hashmap.getOrDefault(player,0) + 1 );
//hashmap에 있는 애들 completion의 player인 key로 꺼내와서
//기존에 등록되어있는사람(=완주한 사람) value -1 로 value를 재등록
for(String player : completion) hashmap.put(palyer,hashmap.get(player)-1);
//만약 value 가 0이 아니면 0이 아니다.
for(String player: hashmap.keySet()){
if(hashmap.get(player) != 0) {
answer = player; break; } }
return answer;
}
}
|
cs |
key와 value를 가져오는 것이면 entryset이 더 효율이 좋다.
1 2 3 4 5 | for(Map.Entry<String,Integer> entry: hashMap.entrySet()) { if(entry.getValue() !=0) { answer = entry.getKey(); } } | cs |
'코테 > 프로그래머스' 카테고리의 다른 글
이름 있는 동물 아이디 (0) | 2020.12.27 |
---|---|
상위 n개 레코드 (0) | 2020.12.26 |
3진법 뒤집기 (0) | 2020.12.06 |
lv1 수박수박수박수박수박수? (0) | 2020.11.15 |
lv1 체육복 (0) | 2020.11.12 |