Notice
Recent Posts
Recent Comments
Link
ยซ   2024/09   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Lennon FE

[๋ฐฑ์ค€ 9012๋ฒˆ] ๊ด„ํ˜ธ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs) ๋ณธ๋ฌธ

๐Ÿ”ฅ Algorithm/Baekjoon

[๋ฐฑ์ค€ 9012๋ฒˆ] ๊ด„ํ˜ธ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs)

Lennon 2022. 1. 20. 17:09
728x90
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/9012

 

9012๋ฒˆ: ๊ด„ํ˜ธ

๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Parenthesis String, PS)์€ ๋‘ ๊ฐœ์˜ ๊ด„ํ˜ธ ๊ธฐํ˜ธ์ธ ‘(’ ์™€ ‘)’ ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. ๊ทธ ์ค‘์—์„œ ๊ด„ํ˜ธ์˜ ๋ชจ์–‘์ด ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Valid PS, VPS)์ด๋ผ๊ณ 

www.acmicpc.net

 

const fs = require('fs');
let input = fs.readFileSync('dev/stdin').toString().trim().split('\n');

input.shift();

const answer = [];

input.filter((value) => {
  let isVPSCount = 0;

  for (let i = 0; i < value.length; i++) {
    if (value[i] === '(') {
      isVPSCount++;
    } else {
      isVPSCount--;
    }

    if (isVPSCount < 0) {
      answer.push('NO');
      break;
    }
  }

  if (isVPSCount === 0) {
    answer.push('YES');
  } else if (isVPSCount > 0) {
    answer.push('NO');
  }
});

console.log(answer.join('\n'));

๊ท ํ˜•์žกํžŒ ๊ด„ํ˜ธ๋ผ๋ฉด 

'(' ๋กœ ์‹œ์ž‘ํ•ด์•ผํ•˜๋ฉฐ,  '(' ์ผ๋•Œ ๊ฐ’์— ๋Œ€ํ•ด +1 ํ•ด์ฃผ๋ฉฐ, ')'์ผ ๋•Œ -1 ํ•ด์ค€๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ ๋กœ์ง ์ง„ํ–‰ ๋„์ค‘ ์Œ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋ฉด ์•ˆ๋œ๋‹ค.

ex) ()) => -1์ด ๊ฒฐ๊ณผ๊ฐ’์ด๋ฏ€๋กœ ๋ฌด์กฐ๊ฑด ๊ท ํ˜•์ด ๊นจ์ง€๊ฒŒ ๋œ๋‹ค.

 

์ฆ‰ ์Œ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋ฉด ๋ฐ”๋กœ ๊ฐ’์„ answer๋ฐฐ์—ด์— ๋„ฃ์–ด์ฃผ๊ณ  break๋ฅผ ๊ฑธ์–ด์ค€๋‹ค.

๊ทธ ํ›„ ๋ฐ‘์— isVPSCount ๊ฐ€ 0์ด๋ฉด VPS์ด๊ณ , 0๋ณด๋‹ค ํฌ๋ฉด VPS๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ answer์— pushํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

 

์ถœ๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž๋ฅผ ์ž˜ ํ™•์ธํ•˜์ž!

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•
Comments