An avid hiker keeps meticulous records of their hikes. During the last hike that took exactly steps, for every step it was noted if it was an uphill, , or a downhill, step. Hikes always start and end at sea level, and each step up or down represents a unit change in altitude. We define the following terms:
A mountain is a sequence of consecutive steps above sea level, starting with a step up from sea level and ending with a step down to sea level.
A valley is a sequence of consecutive steps below sea level, starting with a step down from sea level and ending with a step up to sea level.
Given the sequence of up and down steps during a hike, find and print the number of valleys walked through.
Example
steps = 8
path = [DDUUUUDD]
returns
int: the number of valleys traversed
Explanation
If we represent _ as sea level, a step up as /, and a step down as \, the hike can be drawn as:
_/\ _
\ /
\/\/
The hiker enters and leaves one valley.
#!/bin/python3
import math
import os
import random
import re
import sys
def countingValleys(steps, path):
valley_flag = 0
high = 0
valley = 0
for step in path:
if step == 'U':
high += 1
else:
high -= 1
if high < 0:
valley_flag = 1
elif high >= 0 and valley_flag == 1:
valley_flag = 0
valley += 1
else: pass
return valley
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
steps = int(input().strip())
path = input()
result = countingValleys(steps, path)
fptr.write(str(result) + '\n')
fptr.close()