๐Ÿ‘’ ๋ญ? JS๋กœ PS๋ฅผ ํ•œ๋‹ค๊ณ ?

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][JS / Javascript] ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ

์„ ๋‹ฌ 2023. 5. 19. 23:06
๋ฐ˜์‘ํ˜•

https://school.programmers.co.kr/learn/courses/30/lessons/42888

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

ํ’€์ด

์šฐ์„  ์ฒ˜๋ฆฌํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ž…๋ ฅ ํ˜•ํƒœ๋ฅผ ๋ฐ”๊ฟ”๋†“๋Š”๋‹ค

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}.`
    })
}

 

๋ฐ˜์‘ํ˜•