HackerRank/Algorithms
[HackerRank] Implementation > Counting Valleys
ruming
2021. 11. 7. 19:47
https://www.hackerrank.com/challenges/counting-valleys/problem
계곡이 몇 개인지 세는 문제다. U과 D로 입력을 받고 원래 높이보다 낮았다가 다시 올라오면 계곡 하나로 카운트한다.
int countingValleys(int steps, char* path) {
int flag = 0, answer = 0;
for(int i=0; i<steps; i++){
if(path[i] == 'U'){
flag++;
if(flag == 0) answer++;
}
else {
flag--;
}
}
return answer;
}
일단 flag 변수를 만들어 U일 때는 +1, D일 때는 -1이 되게 코드를 짰다.
여기서 계곡이 생기려면 기준점(0)에서 -였다가 다시 0으로 올라와야 한다.
따라서 U일 때 flag가 0이라면, -에서 올라온 것이므로 계곡이 하나가 생성된다. 따라서 계곡을 세는 answer변수에 +1시킨다.