등산 과정을 보고 계곡의 개수를 찾아라.
등산 과정은 '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;
}
'알고리즘' 카테고리의 다른 글
재귀 소개 및 DP의 맛 (0) | 2019.05.08 |
---|---|
버블정렬? 뇌물의 횟수를 구하라! (feat. 새치기) (0) | 2018.11.09 |
특정 문자의 총 개수는? (0) | 2018.11.02 |
최소 점프 횟수는? (0) | 2018.10.31 |
같은 색상의 양말은 몇 쌍인가? (0) | 2018.10.30 |
댓글