π©π»βπ»λ¬Έμ λ§ν¬
[μΈνλ° μΉμ
6] μ λ§λκΈ° (Javascript)
μ λ£ κ°μμΈ κ΄κ³λ‘ λ¬Έμ μ€λͺ
μ μλ΅ν©λλ€.
βοΈIdea Sketch
2021-06-27
1. ()κ° λ μ΄μ , λ μ΄μ λ μ€νμ μμ§ μλλ€.
2. () λ μ΄μ νλκ° μμ λλ§λ€ cnt += stack.length
3. λ μ΄μ κ° μλ ( κ° λμ€λ©΄ stack.push(); cnt++;
4. λ μ΄μ κ° μλ ) κ° λμ€λ©΄ stack.pop();
5. λ μ΄μ νλ³ μ΄λ»κ²?
- ( κ° λμ¬ λλ§λ€ λ€μ μμκ° ) μΈμ§ νλ³ --> for (let x of str)μ λͺ» μ
- ) κ° λμ¬ λλ§λ€ μ€ν λ§μ§λ§ κ°μ΄ ( μΈμ§ νλ³ --> μ€νμ μμ΄λ κ°μ νμ ( λΌμ μ€ν¨
- νμ κ·Έ λ€μ μμλ₯Ό νμΈν΄λ³΄λ κ² λ λμκ°? --> 6λ²
- μΌλ¨ stackμ λ£μ΄λμλ€κ° μκ³ λ³΄λ λ μ΄μ λΌμ λ€λ¦κ² stack.pop(), cnt--νλ κ²λ³΄λ€ λμ λ―
for (let i=0; i<str.length; i++) {
if (str[i] === '(') {
if (str[i+1] === ')') cnt += stack.length; // λ μ΄μ μΈ κ²½μ°
}
else stack.pop();
}
λ¬Έμ μ
str[i+1] λ‘ λ μ΄μ νλ³μ νλ κ²½μ°,
for λ°λ³΅λ¬Έμμ i++μ΄ μλλΌ i+2λ₯Ό μ€νν΄μΌ ν¨
6. '('λ 무쑰건 stack.push(), cnt++νλ κ²½μ°
- ')'μΌ κ²½μ° μ΄μ μμ νμΈ
- () λ μ΄μ μΈ κ²½μ° stack.pop();ν ν cnt += stack.length - 1;
- λ μ΄μ κ° μλ κ²½μ° stack.pop();
- 5λ²λ³΄λ€ λ μ§κ΄μ μΈ λ‘μ§μΌλ‘ νλ¨
for (let i=0; i<str.length; i++) {
if (str[i] === '(') {
stack.push(str[i]);
cnt++;
}
else if (str[i-1] === '(') { // str[i] === ')' μ΄λ―λ‘ λ μ΄μ
stack.pop();
cnt += stack.length - 1;
}
else { // str[i] === ')' μ λ§λκΈ° λμ
stack.pop();
}
}
- str[i] === ')' μΈ κ²½μ° νμ stack.pop(); μ€ννλ―λ‘ λ‘μ§ μμ
for (let i = 0; i < str.length; i++) {
if (str[i] === '(') {
stack.push(str[i]);
cnt++;
}
else {
stack.pop();
if (str[i - 1] === '(') cnt += stack.length - 1; // λ μ΄μ μΈ κ²½μ°
}
}
βοΈμμ€μ½λ
2021-06-27
function solution(str) {
let cnt = 0;
let stack = [];
for (let i = 0; i < str.length; i++) {
if (str[i] === '(') {
stack.push(str[i]);
cnt++;
}
else {
stack.pop();
if (str[i - 1] === '(') cnt += stack.length - 1; // λ μ΄μ μΈ κ²½μ°
}
}
return cnt;
}