반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Graph
- pytorch
- 우분투
- bayesian
- 불확실성
- 텍스트마이닝
- VAE
- 백준
- 알고리즘
- 리눅스
- 강화학습
- selenium
- uncertainty
- 논문리뷰
- 파이썬
- pandas
- PYTHON
- dropout
- 빅데이터
- 크롤링
- 데이터분석
- AI
- 베이지안
- Crawling
- 코딩테스트
- YarinGal
- DATA
- 텍스트분석
- R
- GNN
Archives
- Today
- Total
끄적거림
[HackerRank] Counting Valleys 본문
728x90
반응형
문제
문제를 요약하자면, path로 주어지는 문자열이 있는데, U = Up-hill(+1), D = Down-hill(-1)이다.
해수면(0)을 기준으로 양수면 산, 음수면 계곡이다.
이때 계곡의 갯수를 반환하면 된다.
코드
# import numpy as np
import collections as co
"""
- steps : 총 걸음 수
- path : 걸음의 자취 문자열
"""
def countingValleys(steps, path):
pl = list(path)
res = 0
stus = 0
cumsum = co.deque([])
for i in range(steps):
hike = pl[i]
if hike == 'U': # up-hill
stus += 1
else: # down-hill
stus -= 1
cumsum.append(stus)
print(cumsum)
if (i > 0) and (stus == 0) and (cumsum[i-1] < 0):
res += 1
return res
if __name__ == '__main__':
steps = 8
path = "UDDDUDUU"
result = countingValleys(steps, path)
print(result)
풀이해설
- path 문자열을 list로 변환
- path list를 순회하며, 누적 합을 cumsum list에 넣는다.
- cumsum의 이전 원소값이 음수이고, 현재 원소값이 0이면 계곡으로 간주하여 +1씩 결과값을 더해 나감
728x90
반응형
'Python > 알고리즘(코딩테스트)' 카테고리의 다른 글
[HackerRank] Repeated String (0) | 2022.06.29 |
---|---|
[HackerRank] Jumping on the Clouds (0) | 2022.06.28 |
[HackerRank] 양말 짝 맞추기 (0) | 2022.06.28 |
백준 2293번 (0) | 2022.06.26 |
[BaekJoon] 백준 1463번 풀이(1로 만들기) in Python (0) | 2020.04.03 |
Comments