Jieunny์˜ ๋ธ”๋กœ๊ทธ

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ณธ๋ฌธ

Study/Coding Test

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

Jieunny 2023. 2. 9. 13:08

๐Ÿ“Œ  ๋ฌธ์ œ

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

  • "()()" ๋˜๋Š” "(())()" ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.
  • ")()(" ๋˜๋Š” "(()(" ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.

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

์ œํ•œ์‚ฌํ•ญ

  • ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 100,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฌธ์ž์—ด s๋Š” '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก  ์•„์ด๋””์–ด

- ์Šคํƒ์— s ๋„ฃ์œผ๋ฉด์„œ ()์ด๋ฉด pop์œผ๋กœ ๋นผ์ฃผ๊ณ , ๋งˆ์ง€๋ง‰์— ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด true -> ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ํ†ต๊ณผ, ํšจ์œจ์„ฑ ๋ฌธ์ œ ์‹คํŒจ

- s ๋Œ๋ฉด์„œ '(' ์ด๋ฉด answer++ ํ•ด์ฃผ๊ณ  ')' ๋งŒ๋‚˜๋ฉด answer-- ํ•ด์ค˜์„œ answer๊ฐ€ -๊ฐ€ ๋˜๋Š” ๋•Œ๊ฐ€ ์žˆ๋‹ค๋ฉด false ํ•ด์ค€๋‹ค.

(answer๊ฐ€ -๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ')'๊ฐœ์ˆ˜๊ฐ€ '(' ๊ฐœ์ˆ˜๋ณด๋‹ค ๋งŽ๋‹ค๋Š” ๋œป)

answer๊ฐ€ 0 ์ด๋ฉด true, ์•„๋‹ˆ๋ฉด false

 

โœ๏ธ  ํ’€์ด

โžฐ ํšจ์œจ์„ฑ ๋ฌธ์ œ ์‹คํŒจ ์ฝ”๋“œ

function solution(s){
  let arr = s.split('');
  if(s.length === 1 || s[0] === ')') return false;
  let stk = [];
  for(let i of arr){
    stk.push(i);
    for(let j=0; j<stk.length; j++){
      if(stk.length > 1){
        if(stk[j] === '(' && stk[j+1] === ')'){
          stk.pop();
          stk.pop();
        }
      }
    }
  }
  if(stk.length === 0) return true;
  else return false;
}

 

โžฐ ํ†ต๊ณผ ์ฝ”๋“œ

function solution(s){
  let answer = 0;
  if(s.length === 1 || s[0] === ')') return false;

  for(let i of s){
    if(i === '(') answer++;
    else {
      answer--;
        if(answer < 0) return false;
    }
  }
  return !answer
}

๐Ÿšจ ์ด ์ฝ”๋“œ๋„ return๋ฌธ์„ if(answer===0) return true / else false ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ2 ํ†ต๊ณผ ๋ชปํ•จ..

ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ ๋Œ์•„๊ฐ€๋Š”์ง€ ๋ชจ๋ฅด๊ฒ„๋‹ค..