반응형
programmers.co.kr/learn/courses/30/lessons/42888
map을 이용해 풀면 되는 문제였습니다.
풀이방법
map을 이용해 key값은 id, value는 nickName으로 생각해 무조건 닉네임이 존재하는 경우에 map을 update 해주는 생각을 했습니다.
1. record를 돌며 해당 정보를 map의 set함수를 이용해 저장합니다.
2. 마지막까지 change된 nickname까지 모두 반영이 되기 때문에 갱신이 완료된 map을 가지고 다시 record를 돌며 나갔는지 들어왔는지 key값 id를 이용해 확인하면 됩니다.
Code
function solution(record) {
var answer = [];
const map = new Map();
for (let i = 0; i < record.length; i++) {
record[i] = record[i].split(" ");
const id = record[i][1];
const nickName = record[i][2];
if (nickName) map.set(id, nickName);
}
for (let i = 0; i < record.length; i++) {
const stat = record[i][0];
const id = record[i][1];
if (stat === "Enter") {
answer.push(map.get(id) + "님이 들어왔습니다.");
} else if (stat === "Leave") {
answer.push(map.get(id) + "님이 나갔습니다.");
}
}
return answer;
}
'Algorithm > String' 카테고리의 다른 글
(C++) - 백준(BOJ) 4388번 : 받아올림 답 (0) | 2021.02.06 |
---|---|
(C++) - 백준(BOJ) 1225번 : 이상한 곱셉 답 (0) | 2021.02.05 |
(Python) - 백준(BOJ) 12780번 : 원피스 답 (0) | 2021.01.25 |
(C++) - 백준(BOJ) 12605번 : 단어순서 뒤집기 답 (0) | 2021.01.25 |
(Python) - 백준(BOJ) 5893번 : 17배 답 (0) | 2021.01.25 |