스택
인사성 밝은 곰곰이
인사성 밝은 곰곰이!
알고리즘 입문방 오픈 채팅방에서는 새로운 분들이 입장할 때마다 곰곰티콘을 사용해 인사한다. 임스가 채팅방 기록을 수집해 곰곰티콘이 사용된 횟수를 구하고자 한다.
ENTER
는 새로운 사람이 채팅방에 입장했음을 나타낸다.function solution(data) {
const CHAT_DATA = data.split("\n");
const CHAT_SIZE = Number(CHAT_DATA.splice(0, 1).join(""));
let duplicateList = new Set();
let count = 0;
for (let i = 1; i < CHAT_SIZE; i++) {
if (!duplicateList.has(CHAT_DATA[i])) {
duplicateList.add(CHAT_DATA[i]);
if (CHAT_DATA[i] !== "ENTER") {
count++;
} else {
duplicateList.clear();
}
}
}
return count;
}
const case1 = `9
ENTER
pjshwa
chansol
chogahui05
lms0806
pichulia
r4pidstart
swoon
tony9402
`;
const case2 = `7
ENTER
pjshwa
chansol
chogahui05
ENTER
pjshwa
chansol
`;
const case3 = `3
ENTER
lms0806
lms0806`;
console.log(solution(case1));
console.log(solution(case2));
console.log(solution(case3));
!duplicateList.has(CHAT_DATA[i])
duplicateList에 유저가 있으면 반복문을 수행하지 않는다.
duplicateList.add(CHAT_DATA[i]);
if (CHAT_DATA[i] !== "ENTER") {
count++;
} else {
duplicateList.clear();
}
duplicateList에 유저를 추가하고 ENTER 즉 새로 입장한 사람이 발견되기 전까지 count를 1씩 증가시킨다(곰곰이 이모티콘 보낸 수)
그게 아니라면 새로 들어온 사람이 있으니 duplicateList를 초기화 시켜 곰곰이 이모티콘을 다시 셀 수 있게 한다.