๋ฐ์ํ
https://school.programmers.co.kr/learn/courses/30/lessons/76502
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
1. ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ณํํด์ฃผ๊ณ ๋งจ ์ ๊ธ์๋ฅผ ๋งจ ๋ค๋ก ๋ณด๋ด๋ ์์ ์ ํ๋ฐํด ๋๋ฆฐ๋ค
2. ์์ฑ๋ ๋ฌธ์์ด๋ง๋ค ์ณ์ ๊ดํธ ๋ฌธ์์ด์ธ์ง ํ๋จ => isRight() ํจ์
isRight ํจ์์์๋ stack ์ฐ์ฐ์ ์ด์ฉํ์ฌ ์ณ์ ๋ฌธ์์ด์ธ์ง ์๋์ง๋ฅผ ํ๋จํ๋ค.
function isRight(s) {
let stack = [];
for(let i of s) {
if(i === "(" || i === "{" || i === "[") {
stack.push(i);
} else {
if(stack.length === 0)
return false;
let top = stack[stack.length-1];
if(i === ")" && top === "(")
stack.pop();
else if(i === "}" && top === "{")
stack.pop();
else if(i === "]" && top === "[")
stack.pop();
else
return false;
}
}
return stack.length === 0;
}
function solution(s) {
let ans = 0;
s = s.split(""); // ๋ฌธ์์ด->๋ฐฐ์ด ๋ณํ
for(let i in s) {
if(isRight(s))
ans++;
s.push(s[0]);
s.shift();
}
return ans;
}
๋ฐ์ํ
'๐ ๋ญ? JS๋ก PS๋ฅผ ํ๋ค๊ณ ?' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] ์์๋๋ฐ์ ์์์ต๋๋ค (0) | 2023.05.11 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] H-Index (0) | 2023.05.10 |
[ํ๋ก๊ทธ๋๋จธ์ค][Javascript / JS] ๊ทค ๊ณ ๋ฅด๊ธฐ (0) | 2023.05.08 |
[ํ๋ก๊ทธ๋๋จธ์ค][Javascript / JS] ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2023.05.04 |
[ํ๋ก๊ทธ๋๋จธ์ค][Javascript / JS] ์ ํ์ ์๊ฐ ์ด๋ (0) | 2023.05.02 |