hackerrank - Counting Valley

Hyeseong·2021년 4월 5일
0

알고리즘

목록 보기
4/9

  • step은 2이상 100만 이하
  • path은 적어도 U,D 문자 2개는 포함해야함.
  • 'U'문자일때만 level이 0인지 아닌지를 매번 확인해주면됨. 나머지 'D'문자일 경우에는 level이 0인지 확인하는 것은 낭비(잘못된 것)
def countingValleys(step, path):
    altitude = 0    # 고도    
    valley_num = 0  # 계곡 숫자(고도가 처음 음수로 바뀐이후 부터 다시 고도가 0이 되는 시점에 +1 증가)
    for i in range(step):
        if ('U'and 'D') in path:   # path가 모두 'DDDDDDDD' 채워지면 제약 조건을 위반함
            if path[i] == 'U':     #
                altitude += 1
                if altitude == 0:  # 고도가 0보다 작은 상태였다가 다시 0으로 바뀌는 시점인지 판단함
                    valley_num += 1
            elif path[i] == 'D':
                altitude -= 1
    return valley_num



path = 'DUDUDU'
step = len(path)
result = countingValleys(step, path)
print(result)
profile
어제보다 오늘 그리고 오늘 보다 내일...

0개의 댓글