Binary Journey

[프로그래머스] 오픈채팅방 본문

프로그래머스/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하는 걸로 마무리했다.

 

 

 

반응형