πŸ”₯ Algorithm/Programmers

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ˜€ν”ˆμ±„νŒ…λ°© (js)

Lennon 2021. 10. 28. 19:31
728x90
λ°˜μ‘ν˜•

https://programmers.co.kr/learn/courses/30/lessons/42888?language=javascript 

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - μ˜€ν”ˆμ±„νŒ…λ°©

μ˜€ν”ˆμ±„νŒ…λ°© μΉ΄μΉ΄μ˜€ν†‘ μ˜€ν”ˆμ±„νŒ…λ°©μ—μ„œλŠ” μΉœκ΅¬κ°€ μ•„λ‹Œ μ‚¬λžŒλ“€κ³Ό λŒ€ν™”λ₯Ό ν•  수 μžˆλŠ”λ°, 본래 λ‹‰λ„€μž„μ΄ μ•„λ‹Œ κ°€μƒμ˜ λ‹‰λ„€μž„μ„ μ‚¬μš©ν•˜μ—¬ μ±„νŒ…λ°©μ— λ“€μ–΄κ°ˆ 수 μžˆλ‹€. μ‹ μž…μ‚¬μ›μΈ κΉ€ν¬λ£¨λŠ” μΉ΄μΉ΄μ˜€ν†‘ 였

programmers.co.kr

 

function solution(record) {
    let map = new Map();
    let arr = [];
    for(let i = 0; i < record.length; i++){
        const [state, id, name] = record[i].split(" ");
        
        if(state !== 'Change'){
            if(state==='Enter'){
                arr.push({id: id, state: "λ‹˜μ΄ λ“€μ–΄μ™”μŠ΅λ‹ˆλ‹€."});
            }
            else {
                arr.push({id: id, state: "λ‹˜μ΄ λ‚˜κ°”μŠ΅λ‹ˆλ‹€."});
                continue;
            }
        }
        map.set(id, name);
    }
    
    return arr.map((v) => map.get(v.id)+v.state)
}

 

ν•΄λ‹Ή 문제의 id와 name은 κ²°κ΅­ λ§ˆμ§€λ§‰ changeλ‚˜ enter둜 κ²°μ •λ‚˜λ―€λ‘œ

 

map을 μ΄μš©ν•΄ λ§ˆμ§€λ§‰ 값을 계속 set μ‹œμΌ°λ‹€.

 

κ·Έ ν›„ λ“€μ–΄μ™”μŠ΅λ‹ˆλ‹€, λ‚˜κ°”μŠ΅λ‹ˆλ‹€ 객체 idλ₯Ό mapμ—μ„œ 가져와 리턴해주면 끝~~

 

이런 끝에 λͺ¨λ“  κ±Έ κ²°μ •ν•˜λŠ” λ¬Έμ œλŠ” setμ΄λ‚˜ map을 μ΄μš©ν•˜λ©΄ 효율적이게 ν’€ 수 μžˆλ‹€λŠ” κ±Έ κΉ¨λ‹¬μ•˜λ‹€.

728x90
λ°˜μ‘ν˜•