https://school.programmers.co.kr/learn/courses/30/lessons/132265
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
function solution(topping) {
var answer = 0;
let chul = new Map();
topping.forEach((f)=>{
if(chul.get(f)) chul.set(f,chul.get(f)+1);
else chul.set(f,1);
})
let dong = new Set();
for(let i =0; i<topping.length; i++){
dong.add(topping[i]);
if(chul.get(topping[i])){
if(chul.get(topping[i])>1) chul.set(topping[i],chul.get(topping[i])-1);
else chul.delete(topping[i])
}
if(chul.size ==dong.size){
answer++;
}
}
return answer;
}
처음에는 양쪽 다 set을 써서 풀려고 했는데
생각해보니 양쪽 다 동일한 토핑을 갖게되는 경우도 있어서 한쪽은 map을 써야한다는걸 알게되었다...
set과 map을 써봤으면 간단히 풀 수 있는 문제군
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스 / 재귀 ] 이모티콘 할인행사 js javascript (0) | 2024.12.11 |
---|---|
[프로그래머스 | 스택 큐 ] 올바른 괄호 js javascript (0) | 2024.11.22 |
[프로그래머스 / 반복문] 피보나치 수 js javascript (0) | 2024.11.19 |
[프로그래머스 / 문자열] 이진 변환 반복하기 js javascript (1) | 2024.11.13 |
[PCCP 기출문제] 동영상 재생기 js javascript (0) | 2024.11.10 |