블로그

[프로그래머스, 자바스크립트] 알고리즘-42 쇠막대기 본문

알고리즘

[프로그래머스, 자바스크립트] 알고리즘-42 쇠막대기

wooluck 2020. 1. 4. 11:54

출처 : 프로그래머스 알고리즘 코딩테스트 Level.2

https://programmers.co.kr/learn/courses/30/lessons/42585?language=javascript

 

풀이 과정

 레이저가 출력될 때 마다 현재 놓여져있는 막대의 개수 만큼 조각이 증가한다.

그러므로 결과 값을 저장할 변수 외에 쌓여져있는 막대의 개수를 저장할 변수도 필요하다.

막대 하나가 끝나는 시점에서도 조각이 증가함을 유의하자.

 

답안

function solution(s) {
  let result = 0,
    count = 0;
  for (let i = 0; i < s.length; i += 1) {
    if (s[i] == "(" && s[i + 1] == ")") {
      result += count;
      i += 1;
    } else if (s[i] == "(") {
      count += 1;
    } else if (s[i] == ")") {
      count -= 1;
      result += 1;
    }
  }
  return result;
}

 

재미있다!

 

Comments