์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 12909] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ (Javascript)

์€์ง„ 2021. 6. 26. 15:24

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

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป๋ฌธ์ œ๋งํฌ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 12909] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ (Javascript)
๋ฌธ์ œ ์„ค๋ช…
๊ด„ํ˜ธ๊ฐ€ ๋ฐ”๋ฅด๊ฒŒ ์ง์ง€์–ด์กŒ๋‹ค๋Š” ๊ฒƒ์€ '(' ๋ฌธ์ž๋กœ ์—ด๋ ธ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ง์ง€์–ด์„œ ')' ๋ฌธ์ž๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด

"()()" ๋˜๋Š” "(())()" ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.
")()(" ๋˜๋Š” "(()(" ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.
'(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์ž์—ด s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด true๋ฅผ return ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋ฉด false๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ
๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 100,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
๋ฌธ์ž์—ด s๋Š” '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž…์ถœ๋ ฅ ์˜ˆ
s answer
"()()" true
"(())()" true
")()(" false
"(()(" false
์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…
์ž…์ถœ๋ ฅ ์˜ˆ #1,2,3,4
๋ฌธ์ œ์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.


โœ๏ธIdea Sketch

2021-06-26

1. stack : LIFO

  • stack.push() ๋ฐฐ์—ด ๋์— ์›์†Œ ์ถ”๊ฐ€
  • stack.pop() ๋ฐฐ์—ด ๋์— ์žˆ๋Š” ์›์†Œ ์‚ญ์ œ

2. queue : FIFO

  • queue.push() ๋ฐฐ์—ด ๋์— ์›์†Œ ์ถ”๊ฐ€
  • queue.shift() ๋ฐฐ์—ด ์•ž์— ์žˆ๋Š” ์›์†Œ ์‚ญ์ œ

3. stack.length๊ฐ€ 0์ธ๋ฐ x === ')'์ธ ๊ฒฝ์šฐ return false;

4. str๋ฅผ ๋ชจ๋‘ ์ˆœํšŒํ–ˆ๋Š”๋ฐ stack.length > 0 ์ธ ๊ฒฝ์šฐ return false;

for (let x of str) {
    if (x === '(') stack.push('(');
    else if (stack.length === 0) return false;
    else stack.pop();
}
if (stack.length > 0) return false;
return true;


โœ๏ธ์†Œ์Šค์ฝ”๋“œ

2021-06-26 ์ •ํ™•์„ฑ ํ†ต๊ณผ, ํšจ์œจ์„ฑ ํ†ต๊ณผ

function solution(str) {
    let stack = [];

    for (let x of str) {
        if (x === '(') stack.push('(');
        else if (stack.length === 0) return false;
        else stack.pop();
    }

    if (stack.length > 0) return false;

    return true;
}