Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
[프로그래머스][Java][Lv.1] 완주하지 못한 선수 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42576
내가 푼 풀이 - 해쉬맵 사용
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> map = new HashMap<>();
for (String x : participant) {
map.put(x, map.getOrDefault(x, 0) + 1);
}
for (String x : completion) {
map.put(x, map.get(x) - 1);
if (map.get(x) == 0) map.remove(x);
}
for (String x : map.keySet()) {
answer = x;
}
return answer;
}
}
정확성 테스트
테스트 1 〉 | 통과 (0.06ms, 73.8MB) |
테스트 2 〉 | 통과 (0.06ms, 75MB) |
테스트 3 〉 | 통과 (0.62ms, 80MB) |
테스트 4 〉 | 통과 (1.74ms, 72MB) |
테스트 5 〉 | 통과 (1.57ms, 88.6MB) |
테스트 6 〉 | 통과 (0.03ms, 74.3MB) |
테스트 7 〉 | 통과 (0.06ms, 72.6MB) |
효율성 테스트
테스트 1 〉 | 통과 (48.38ms, 83.8MB) |
테스트 2 〉 | 통과 (62.18ms, 89.3MB) |
테스트 3 〉 | 통과 (81.44ms, 94.1MB) |
테스트 4 〉 | 통과 (89.08ms, 96MB) |
테스트 5 〉 | 통과 (103.93ms, 95.3MB) |
다른 사람 풀이 - 정렬 사용
정렬해서 풀면 효율성이 엄청 떨어진다
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
Arrays.sort(participant);
Arrays.sort(completion);
int i;
for (i=0; i <completion.length; i++){
if (!participant[i].equals(completion[i])){
return participant[i];
}
}
return participant[i];
}
}
정확성 테스트
테스트 1 〉 | 통과 (0.19ms, 72.7MB) |
테스트 2 〉 | 통과 (0.25ms, 74MB) |
테스트 3 〉 | 통과 (1.56ms, 81.1MB) |
테스트 4 〉 | 통과 (2.62ms, 75.8MB) |
테스트 5 〉 | 통과 (2.47ms, 78.8MB) |
테스트 6 〉 | 통과 (0.17ms, 73.2MB) |
테스트 7 〉 | 통과 (0.23ms, 81MB) |
효율성 테스트
테스트 1 〉 | 통과 (146.17ms, 81.7MB) |
테스트 2 〉 | 통과 (205.73ms, 88.4MB) |
테스트 3 〉 | 통과 (249.85ms, 90.7MB) |
테스트 4 〉 | 통과 (309.28ms, 95.7MB) |
테스트 5 〉 | 통과 (265.45ms, 97.5MB) |
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Java][Lv.2] 의상 (1) | 2023.10.03 |
---|---|
[프로그래머스][Java][Lv.2] 전화번호 목록 (0) | 2023.10.03 |
[프로그래머스][Java][Lv.1] 포켓몬 (0) | 2023.10.03 |
[프로그래머스][Java][모의테스트] 나머지 한 점 (0) | 2023.10.03 |
[프로그래머스][Java][Lv.2] 구명보트 - 투포인터 (0) | 2023.09.29 |