Counting Valleys(javascript)

Counting Valleys

javascript


Input Format

변수
n 트래킹한 횟수
p 위/아래 이동한 기록에대한 문자열

제한사항

  • U은 위로 이동, D는 아래로 이동
  • 시작지점에서 다시 시작지점의 위치로 왔을 때 계곡 1개를 이동했다고 가정하여 카운팅
  • 위로 이동 후 시작지점으로 내려오는 경우는 계곡으로 카운팅하지 않음

입출력 예

n s return
8 "UDDDUDUU" 1
12 "DDUUDDUDUUUD" 2

코드

  1. 위로 갔다가 다시 시작지점 위치로 온 경우에 대한 예외처리
  2. D를 체크하여 시작지점 위치로 돌아온 경우 count 증가
  3. D, U를 비교하여 이동 추적필요
function countingValleys(n, s) {
  let stack = [];
  let count = 0;

  for (let char of s) {
    if (!stack.length) stack.push(char);
    else {
      const last_value = stack[stack.length - 1];
      if (last_value != char) stack.pop();
      else stack.push(char);

      if (!stack.length && last_value == 'D') count++;
    }
  }
  return count;
}

출처: hackerrank Algorithms, https://www.hackerrank.com/challenges/drawing-book/leaderboard

© 2021 AnGwangHo, Built with Gatsby