๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[Javascript/PGS] Lv.2 : ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ

728x90
๋ฐ˜์‘ํ˜•

 

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

 

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

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr


ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ 2.

๊ทธ๋ƒฅ ๋ฐ˜๋ณต๋ฌธ + substr๋กœ ํ’€์—ˆ๋Š”๋ฐ, ํšจ์œจ์„ฑ์—์„œ ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆผ.

 

์•„ ๋ญ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค! ๋ผ๊ณ  ํŒ๋‹จํ•ด์„œ

๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ดค๋Š”๋ฐ

์Šคํƒ์œผ๋กœ ํ‘ธ๋Š”๊ฒŒ ์ตœ๊ณ ์˜ ๋ฐฉ๋ฒ•์ธ ๊ฒƒ ๊ฐ™์•˜๋‹ค.

substr์€ ๊ฐ๊ฐ O(N)์ด์ง€๋งŒ, push/pop์€ ๊ฐ๊ฐ O(1)์ด๋ฏ€๋กœ ๊ฒฐ๊ตญ ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ผ ๋ฐฐ์—ด๋กœ ํ•ด๊ฒฐํ•˜๋Š”๊ฒŒ ๋งž์•˜๋‹ค ^-^

 

๋‚˜์˜ ํ’€์ด

function solution(s)
{
    var answer = 0;
    if(s.length<=1) return answer;
    let stack = [];
    stack.push(s[0]);
    for(let i=1; i<s.length; ++i){
        let b = s[i];
        if(stack.length===0) {
            stack.push(b);
            continue;
        }
        let a = stack.pop();
        if(a!==b) {
            stack.push(a);
            stack.push(b);
        }
    }
    if(stack.length===0) answer = 1;
    return answer;
}

 

728x90
๋ฐ˜์‘ํ˜•