728x90
코딩 테스트 풀이 체크리스트 |
|
2시간 내에 풀었는가? | O |
본인의 실력으로 풀었는가? | O |
코딩테스트 연습 - 완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수
programmers.co.kr
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
HashMap<String, Integer> name = new HashMap<>();
String answer = "";
for (int i = 0; i < completion.length; i++) {
name.put(completion[i], name.getOrDefault(completion[i], 0) + 1);
}
for (int i = 0; i < participant.length; i++) {
int num = name.getOrDefault(participant[i], 0);
if (num == 0) {
answer = participant[i];
break;
}
name.put(participant[i], num - 1);
}
return answer;
}
}
정확성 테스트
테스트 1 〉 | 통과 (0.03ms, 74MB) |
테스트 2 〉 | 통과 (0.06ms, 75.8MB) |
테스트 3 〉 | 통과 (0.41ms, 72.9MB) |
테스트 4 〉 | 통과 (0.76ms, 81.2MB) |
테스트 5 〉 | 통과 (0.48ms, 78.2MB) |
효율성 테스트
테스트 1 〉 | 통과 (33.16ms, 81.9MB) |
테스트 2 〉 | 통과 (53.05ms, 88.9MB) |
테스트 3 〉 | 통과 (54.83ms, 94.9MB) |
테스트 4 〉 | 통과 (57.47ms, 97.3MB) |
테스트 5 〉 | 통과 (77.58ms, 95.6MB) |
completion에 있는 이름들을 해시맵에 넣고, participant에 있는 이름을 하나씩 지워간다.
만약 getOrDefault()가 0을 리턴하면 그대로 그냥 answer에 이름 넣고 종료.
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 - 더 맵게 (2단계) (0) | 2022.04.14 |
---|---|
[Java] 프로그래머스 - 기능개발 (2단계) (0) | 2022.04.13 |
[Java] 프로그래머스 - 124 나라의 숫자 (2단계) (0) | 2022.04.12 |
[정보처리산업기사] 배열과 문자열 (0) | 2022.04.09 |
[Java] 프로그래머스 - 소수 만들기 (1단계) (0) | 2022.04.08 |