diff --git "a/Programmers/Level2/12973_\354\247\235\354\247\200\354\226\264_\354\240\234\352\261\260\355\225\230\352\270\260.js" "b/Programmers/Level2/12973_\354\247\235\354\247\200\354\226\264_\354\240\234\352\261\260\355\225\230\352\270\260.js" index de6f7c7..2f2ce5b 100644 --- "a/Programmers/Level2/12973_\354\247\235\354\247\200\354\226\264_\354\240\234\352\261\260\355\225\230\352\270\260.js" +++ "b/Programmers/Level2/12973_\354\247\235\354\247\200\354\226\264_\354\240\234\352\261\260\355\225\230\352\270\260.js" @@ -5,11 +5,31 @@ 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12973 */ +// ANCHOR 2025.12.01 풀이 +function solution2(s) { + const stack = []; + for (const c of s) { + if (stack.length === 0) { + stack.push(c); + continue; + } + const top = stack[stack.length - 1]; + if (c === top) { + stack.pop(); + } else { + stack.push(c); + } + } + + return stack.length === 0 ? 1 : 0; +} + +// ANCHOR 2025.10.02 풀이 function isEmpty(stack) { return stack.length === 0; } -function solution(s) { +function solution1(s) { const stack = []; // 초기화 diff --git "a/Programmers/Level2/76502_\352\264\204\355\230\270_\355\232\214\354\240\204\355\225\230\352\270\260.js" "b/Programmers/Level2/76502_\352\264\204\355\230\270_\355\232\214\354\240\204\355\225\230\352\270\260.js" index d0d691b..09f1424 100644 --- "a/Programmers/Level2/76502_\352\264\204\355\230\270_\355\232\214\354\240\204\355\225\230\352\270\260.js" +++ "b/Programmers/Level2/76502_\352\264\204\355\230\270_\355\232\214\354\240\204\355\225\230\352\270\260.js" @@ -5,7 +5,36 @@ 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/76502 */ -//ANCHOR 2025.10.02 풀이 +// ANCHOR 2025.12.01 풀이 +function solution3(s) { + let answer = 0; + const sList = [...s, ...s]; + for (let start = 0; start < s.length; start++) { + const stack = []; + let isValid = true; + for (let offset = 0; offset < s.length; offset++) { + const c = sList[start + offset]; + if (c === "(" || c === "[" || c === "{") { + stack.push(c); + } else { + const top = stack.pop(); + if (!top) { + isValid = false; + break; + } + if (top === "(" && c === ")") continue; + if (top === "[" && c === "]") continue; + if (top === "{" && c === "}") continue; + isValid = false; + break; + } + } + if (isValid && stack.length === 0) answer++; + } + return answer; +} + +// ANCHOR 2025.10.02 풀이 function solution2(s) { let answer = 0; const n = s.length;