프로그래머스/level 2
[프로그래머스] 오픈채팅방
binaryJournalist
2021. 8. 9. 22:56
반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
** Javascript
function solution(record) {
let answer = [];
const users = {};
const records = record.map((r) => r.split(" "));
for (const [order, id, nickName] of records) {
if (nickName) users[id] = nickName;
}
for (const [order, id, nickName] of records) {
if (order.startsWith("E")) answer.push(`${users[id]}님이 들어왔습니다.`);
if (order.startsWith("L")) answer.push(`${users[id]}님이 나갔습니다.`)
}
return answer;
}
users 에 들어가있는 최종 nickname 으로 result 를 바꿔야 하기 때문에 for문을 두 번 돌릴 수밖에 없었다.
answer 배열에 `${id}님이 ...했습니다.` 를 넣고 map, replace를 할까 했지만 시간초과로 계속 오답이 됐다.
결국 첫 for문에 users object에 먼저 id 와 nickname을 넣고 두 번째 for문에서 해당 id의 value를 찾아 answer push하는 걸로 마무리했다.
반응형