import java.util.Arrays;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
int i, j;
//두개 정렬해서 비교하면서 달라지는 순간 파악?
Arrays.sort(participant);
Arrays.sort(completion);
for(String name : participant){
System.out.print(name + " ");
}
System.out.println();
for(String name : completion){
System.out.print(name + " ");
}
System.out.println();
//equals 와 compareTo : equals는 같은지 확인, compareTo는 사전 순 확인
for(i = 0; i < participant.length; i++){
if(completion.length <= i || !participant[i].equals(completion[i])){
answer = participant[i];
break;
}
}
return answer;
}
}
import java.util.HashMap;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> hm = new HashMap<>();
for (String player : participant) hm.put(player, hm.getOrDefault(player, 0) + 1);
for (String player : completion) hm.put(player, hm.get(player) - 1);
for (String key : hm.keySet()) {
if (hm.get(key) != 0){
answer = key;
}
}
return answer;
}
}
시간 효율이 내 풀이와 크게 차이가 난다.
import java.util.Arrays;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
int i, j;
//두개 정렬해서 비교하면서 달라지는 순간 파악?
Arrays.sort(participant);
Arrays.sort(completion);
// for(String name : participant){
// System.out.print(name + " ");
// }
// System.out.println();
// for(String name : completion){
// System.out.print(name + " ");
// }
// System.out.println();
//equals 와 compareTo : equals는 같은지 확인, compareTo는 사전 순 확인
for(i = 0; i < completion.length; i++){
if(!participant[i].equals(completion[i])){
return participant[i];
}
}
return participant[i];
}
}
조건문 검사 부분이 하나 더 있어서 그런가 하고 조건을 좀 줄여 봤는데 큰 차이는 없다.