ν‹°μŠ€ν† λ¦¬ λ·°

문제

λ¬Έμ œν’€μ΄


  • μ—¬λŠ” κ΄„ν˜ΈμΌ 경우 μŠ€νƒμ— 계속 μ €μž₯
  • λ‹«λŠ” κ΄„ν˜ΈμΌ κ²½μš°μ—λŠ” μ•žμ— 인덱슀 μš”μ†Œμ— 따라 λ‹€λ₯Έ μ—°μ‚° μ‹œν–‰
  • μ•žμ— 인덱슀 μš”μ†Œκ°€ μ—¬λŠ” κ΄„ν˜ΈμΌ 경우(λ ˆμ΄μ €)λŠ” λ ˆμ΄μ € ν•œμŒμ— ν•΄λ‹Ήν•˜λŠ” μ—¬λŠ” κ΄„ν˜Έλ₯Ό μŠ€νƒμ—μ„œ μ‚­μ œ
  • (μ‚­μ œ 된 μŠ€νƒμ˜ 크기) === (μ ˆλ‹¨ 된 μ‡ λ§‰λŒ€κΈ° 쑰각)
  • μ•žμ— 인덱슀 μš”μ†Œκ°€ λ‹«λŠ” κ΄„ν˜ΈμΌ 경우(μ‡ λ§‰λŒ€κΈ° 끝단)λŠ” μ‡ λ§‰λŒ€κΈ° 쀑 κ°€μž₯ μž‘μ€ λ§‰λŒ€κΈ°μ˜ μ‹œμž‘λ‹¨μ„ μŠ€νƒμ—μ„œ μ‚­μ œ
  • μ‚­μ œ 된 λ§‰λŒ€κΈ° 끝단에 쑰각 ν•˜λ‚˜κ°€ 남아 있음

μ½”λ“œ

function solution(p) {
  let answer = 0;
  let stack = [];

  for (let i = 0; i < p.length; i++) {
    if (p[i] === ")") {
      if (p[i - 1] === "(") { // λ ˆμ΄μ €μΌ 경우
        stack.pop(p[i - 1]);
        answer += stack.length;
      } else { //μ‡ λ§‰λŒ€κΈ°μΌ 경우
        stack.pop();
        answer += 1; //μ‡ λ§‰λŒ€κΈ°μ˜ 남은 쑰각(끝단)을 κ°€μ‚°
      }
    } else stack.push(p[i]);
  }

  return answer;
}

let pos = "()(((()())(())()))(())";
console.log(solution(pos));

function solution(s){
                let answer=0;
                let stack=[];
                for(let i=0; i<s.length; i++){
                    if(s[i]==='(') stack.push('(');
                    else{
                        stack.pop(); 
                        if(s[i-1]==='(') answer+=stack.length;
                        else answer++;
                        //stack.pop(); 이 μœ„μΉ˜μ— ν•˜λ©΄ λ ˆμ΄μ €κΉŒμ§€ μΉ΄μš΄νŒ…ν•œλ‹€.
                    }
                }                          
                return answer;
            }
            
            let a="()(((()())(())()))(())";
            console.log(solution(a));
λŒ“κΈ€
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
링크
TAG
more
Β«   2024/10   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
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 31
κΈ€ 보관함