From 0c8f377d04f462a0b2fe5bcd23e3f79770fbf00b Mon Sep 17 00:00:00 2001 From: yoouyeon Date: Mon, 1 Dec 2025 13:26:40 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=92=A1=20=ED=94=84=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EB=9E=98=EB=A8=B8=EC=8A=A4=2012973=20-=20=EC=A7=9D=EC=A7=80?= =?UTF-8?q?=EC=96=B4=20=EC=A0=9C=EA=B1=B0=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...34\352\261\260\355\225\230\352\270\260.js" | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) 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 = []; // 초기화 From 3c1188bb02e139b25ef042ba16570803f5db8efd Mon Sep 17 00:00:00 2001 From: yoouyeon Date: Mon, 1 Dec 2025 13:26:53 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=92=A1=20=ED=94=84=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EB=9E=98=EB=A8=B8=EC=8A=A4=2076502=20-=20=EA=B4=84=ED=98=B8=20?= =?UTF-8?q?=ED=9A=8C=EC=A0=84=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...14\354\240\204\355\225\230\352\270\260.js" | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) 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;