public static String solution(String[] participant, String[] completion) {
String answer = "";
Map<String, Integer> map = new HashMap<String, Integer>();
for(String save:completion){
map.put(save,map.getOrDefault(save,0)+1);
}
for(String save:participant){
if(map.containsKey(save)){
int count = map.get(save) - 1;
if(count == 0){
map.remove(save);
}else{
map.put(save,count);
}
}else{
answer = save;
}
}
return answer;
}
우선은 수정 후 효율성까지 무사히 통과한 코드이다.
아래의 코드는 정확성에서는 모두 맞았지만, 효율성은 하나도 통과하지 못한 처음 작성한 코드이다.
public static String solution(String[] participant, String[] completion) {
String answer = "";
Arrays.sort(participant);
Arrays.sort(completion);
System.out.println(Arrays.toString(participant));
System.out.println(Arrays.toString(completion));
for (int i = 0; i < participant.length; i++) {
for (int j = 0; j < completion.length; j++) {
if (participant[i].equals(completion[j])) {
participant[i] = "";
completion[j] = "";
}
}
}
for (int i = 0; i < participant.length; i++) {
if (!participant[i].equals("")) {
answer = participant[i];
}
}
return answer;
}
'Java > Programmers' 카테고리의 다른 글
[Lv.1]키패드 누르기 (0) | 2023.01.30 |
---|---|
[Lv.1]숫자 짝꿍 (0) | 2023.01.30 |
[Lv.1]다트 게임 (0) | 2023.01.28 |
[Lv.1]가장 가까운 같은 글자 (0) | 2023.01.27 |
[Lv.1]실패율 (0) | 2023.01.27 |
댓글