728x90
https://school.programmers.co.kr/learn/courses/30/lessons/132265
계속 시간 초과가 나서 찾아본 문제다😢
처음에는 Set을 2개를 선언해서 반복문 돌면서 그 때마다 넣어주고 계산했는데
음 사실 진짜 효율 안좋은거 알긴 했다ㅋㅋㅋㅋㅋㅋ
근데 어어ㅓㅇ어어어ㅓㅇ어엄청 안좋아서 찾아보니까 Map을 사용하면 훨씬 빠르다고 했땅
그래서 Map 하나랑 Set 하나를 선언해서 구현했다!
그렇게 어려운 문제는 아니어서 코드 보면 이해가 될 것이다!
자바 코드)
import java.util.*;
class Solution {
public int solution(int[] topping) {
int answer = 0;
Map<Integer, Integer> a = new HashMap<>();
Set<Integer> set = new HashSet<>();
for(int t : topping) {
if(a.containsKey(t)) {
a.put(t, a.get(t)+1);
} else {
a.put(t, 1);
}
}
for(int t : topping) {
a.put(t, a.get(t)-1);
set.add(t);
if(a.get(t)==0) {
a.remove(t);
}
if(a.size()==set.size()) {
answer++;
}
}
return answer;
}
}
https://codingbutterfly.tistory.com/51
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[연습 문제] 디펜스 게임 - JAVA (0) | 2022.12.19 |
---|---|
[완전탐색] 모음사전 - JAVA (0) | 2022.12.15 |
[카카오 인턴] 경주로 건설 - JAVA (0) | 2022.11.26 |
[연습 문제] 숫자 카드 나누기 - JAVA (0) | 2022.11.17 |
[연습문제] 혼자 놀기의 달인 - JAVA (0) | 2022.11.02 |
댓글