728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42576?language=java
728x90
#문제
- 수많은 마라톤 선수들이 마라톤에 참여하였습니다.
단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열
completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
#1. 나의 코드
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
int p_length = participant.length;
int c_length = completion.length;
int count;
for(int i=0;i<p_length;i++){
count = 0;
for(int j=0;j<c_length;j++){
if(participant[i].equals(completion[j])){
count++;
break;
}
}
if(count==0){
answer += participant[i];
}
}
return answer;
}
}
#2. 다른 사람 코드
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
Arrays.sort(participant);
Arrays.sort(completion);
int i;
int c_len=completion.length;
for(i=0;i<c_len;i++){
if(!participant[i].equals(completion[i])){
return participant[i];
}
}
return participant[i];
}
}
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;
728x90
반응형