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시킨다.
'HackerRank > Algorithms' 카테고리의 다른 글
[HackerRank] Sorting > Closest Numbers (0) | 2021.11.21 |
---|---|
[HackerRank] Warmup > Staircase (0) | 2021.11.08 |
[HackerRank] Implementation > Electronics Shop (0) | 2021.10.10 |
[HackerRank] Implementation > Cats and a Mouse (0) | 2021.10.04 |
[HackerRank] Implementation > Bill Division (0) | 2021.09.26 |