3/2 오늘 대학교 개강을 하였다......ㅎ
개강한 기념으로 개강과 관련된 문제를 풀어보았다!
[문제]
상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했고 가장 큰 오르막길의 크기를 구하려고 한다.
측정한 높이는 길이가 N인 수열로 나타낼 수 있다. 여기서 오르막길은 적어도 2개의 수로 이루어진 높이가 증가하는 부분 수열이다. 오르막길의 크기는 부분 수열의 첫 번째 숫자와 마지막 숫자의 차이이다.
가장 큰 오르막길을 구하는 프로그램을 작성하시오.
만약 오르막길이 없는 경우에는 0을 출력한다.
[문제 접근]
숫자가 커질 때 더하고 작아질 떄 0으로 초기화한다.
[정답]
1. 측정한 높이의 수이자 수열의 크기인 N을 입력받는다. 길의 높이를 리스트 way에 저장한다.
2. 오르막길의 높이를 임시로 저장할 변수 temp와 오르막길의 높이를 저장할 리스트 ans를 선언한다.
3. for문을 돌면서 앞 길의 높이와 뒷 길의 높이를 비교하여 오르막길이라면 temp+=(뒷길 높이-앞길 높이)를 해준다. i==N-1이고 오르막길이라면 ans에 추가가 되지 않으므로 if문을 만들어 이 경우도 생각해준다. 만약 오르막길이 아니라면 ans에 temp를 더해주고 temp를 0으로 초기화한다.
4. 최종적으로 오르막길의 높이가 저장된 ans의 max값을 출력한다.
'알고리즘 공부 > 백준 > Python3' 카테고리의 다른 글
[백준 파이썬] #5073: 삼각형과 세 변 (0) | 2021.03.05 |
---|---|
[백준 파이썬] #10474: 분수 좋아해? (0) | 2021.03.03 |
[백준 파이썬] #4766: 일반 화학 실험 (0) | 2021.03.01 |
[백준 파이썬] #11478: 서로 다른 부분 문자열의 개수 (0) | 2021.02.27 |
[백준 파이썬] #2914: 저작권 (0) | 2021.02.25 |