본문 바로가기
알고리즘

계곡의 개수는?

by 스빠시빠 2018. 11. 1.

등산 과정을 보고 계곡의 개수를 찾아라.

등산 과정은 'U'와 'D'로 표현한다.
(U는 uphill, D는 downhill)

해수면에서 위쪽으로 표현이 되면 산, 해수면보다 아래쪽으로 표현이 되면 계곡이다.

(시작 지점과 끝지점은 항상 해수면 높이)
예를 들어 [UDDDUDUU]의 등산과정이 있다면,
그림으로 표현하면 이렇게 된다.
결과적으로 계곡은 1개가 된다.

_/\      _
   \    /
    \/\/

요구 사항

주어진 countingValleys 함수를 완성 시켜라.

첫번째 인자는 배열 길이
두번째 인자는 등산 과정 문자열
결과값은 계곡 개수를 return

입력 형식

첫 줄은 배열 길이, 두번째 줄은 요소 문자열 입력.

제한 사항

길이 2 <= n <= 10의6승, 배열 요소 U or D

예제

입력:
8
UDDDUDUU

결과:
1

function countingValleys(n, s) {
    const array = s.split('');
    let seaLevel = 0;
    let valleyCount = 0;
    array.forEach((v) => {
        if (v === 'U') {
            seaLevel += 1;
            if (seaLevel === 0) {
               valleyCount += 1;
            }
        } else {
            seaLevel -= 1;
        }
    });

    return valleyCount;
}

댓글