-
[프로그래머스] 완주하지 못한 선수Dev/알고리즘 2020. 10. 26. 10:04
문제: programmers.co.kr/learn/courses/30/lessons/42576
ArrayList를 쓰면 효율성 테스트 실패
HashSet을 쓰면 문제 조건을 맞추지 못함(HashSet은 중복을 허용하지 않기 때문)
HashMap에 completion의 모든 값을 키로 넣어주고, 그것의 갯수를 체크해 값에 넣어준다.
이후 participant 배열을 하나씩 검색해 HashMap에 해당 participant가 있는지 확인한다.
123456789101112131415161718192021222324252627282930313233import java.util.HashMap;class Solution{public String solution(String[] participant, String[] completion) {StringBuilder answer = new StringBuilder();// Completion 멤버들을 모두 집어넣는 영역HashMap<String, Integer> dataSet = new HashMap<>();for(String str : completion){if(dataSet.containsKey(str)){dataSet.put(str, dataSet.get(str) + 1);} else{dataSet.put(str, 1);}}// for loop를 돌면서 participantfor(String str : participant) {if(!dataSet.containsKey(str)){answer.append(str);break;}if(dataSet.containsKey(str)){if(dataSet.get(str)>1){dataSet.put(str, dataSet.get(str)-1);}else {dataSet.remove(str);}}}return answer.toString();}}cs 할 때는 잘 푼거 같은데 다시 보니 이상한거 투성이다.
맞추긴 했는데...
'Dev > 알고리즘' 카테고리의 다른 글
[트리] 백준 트리 순회, 트리의 부모 찾기 (0) 2020.09.08 [그래프] 백준 5214 (0) 2020.08.27 [그래프] 백준 5567: 결혼식 (0) 2020.08.27 [그래프, BFS&DFS] 1260, 2606 문제 풀이 (0) 2020.08.26 [백준] 1822 java 풀이법 (0) 2020.06.26