https://school.programmers.co.kr/learn/courses/30/lessons/42888
ํ์ด
์ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ฝ๊ฒ ์ ๋ ฅ ํํ๋ฅผ ๋ฐ๊ฟ๋๋๋ค
record = record.map(v => v.split(" "));
[ [ 'Enter', 'uid1234', 'Muzi' ], [ 'Enter', 'uid4567', 'Prodo' ], [ 'Leave', 'uid1234' ], [ 'Enter', 'uid1234', 'Prodo' ], [ 'Change', 'uid4567', 'Ryan' ]]
์ด์ Enter Leave Change ์ ๋ฐ๋ผ ๊ฐ๊ฐ ํ๋์ ํด์ฃผ๋ฉด ๋๋ค
์ฐธ๊ณ ๋ก ๋๋ค์์ ์ธ์ ๋ฐ๋์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ userid๋ฅผ ํค๋ก nickname์ ๊ฐ์ผ๋ก ํ์ฌ ์๋ฃ๊ตฌ์กฐ ๋งต์ผ๋ก ๊ด๋ฆฌํด์ผํ๋ค
ํ๋ ์์๋ ํ๋๊ณผ ํด๋น ํ๋์ ํ ์ ์ ๋ฅผ ๊ฐ์ฒด๋ก ๋ฌถ์ด์ result ๋ฆฌ์คํธ๋ก ๊ด๋ฆฌํด์ฃผ์๋ค. (์๋์์ ๋ก๊ทธ๋ผ๊ณ ๋ถ๋ฆ)
1. Enter : ๋๋ค์ ์ค์ , ์ ์ฅ ๋ก๊ทธ ์ถ๊ฐ
2. Leave : ํด์ฅ ๋ก๊ทธ ์ถ๊ฐ
3. Change : ๋๋ค์ ์ค์
์ด์ results๋ฆฌ์คํธ ์์๋๋ก ๋ก๊ทธ๋ฅผ ์ถ๋ ฅํ๋๋ฐ,
๊ฐ userid์ ํด๋นํ๋ ๋๋ค์์ userInfo ๋งต์์ ์กฐํํ๊ณ ํ๋์ ๋ฐ๋ผ ๋ฉ์ธ์ง๋ฅผ ๋ค๋ฅด๊ฒ ์ถ๋ ฅํด์ฃผ๋ฉด ๋!
function solution(record) {
let userInfo = new Map();
let result = [];
record = record.map(v => v.split(" "));
for(let i of record) {
const [action, id, nickname] = i;
if(action === "Enter") {
userInfo.set(id, nickname);
result.push({id: id, isEnter: true});
} else if(action === "Leave") {
result.push({id: id, isEnter: false});
} else if(action === "Change") {
userInfo.set(id, nickname)
}
}
return result.map(v => {
const {id, isEnter} = v;
const message = isEnter ? '๋ค์ด์์ต๋๋ค' : '๋๊ฐ์ต๋๋ค';
return `${userInfo.get(id)}๋์ด ${message}.`
})
}
'๐ ๋ญ? JS๋ก PS๋ฅผ ํ๋ค๊ณ ?' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2023.05.24 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] ํ๊ฒ ๋๋ฒ (0) | 2023.05.23 |
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] ํ๋ก์ธ์ค (0) | 2023.05.18 |
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] ํํ (1) | 2023.05.17 |
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] ์์ (0) | 2023.05.16 |