https://www.acmicpc.net/problem/1668
solution
left_seen : 왼쪽에서 봤을 때 보이는 개수
right_seen : 오른쪽에서 봤을 때 보이는 개수
left_max : 왼쪽에서 봤을 때 높이가 가장 큰 트로피. 탐색하다가 더 큰 트로피가 나오면 left_seen +1 한 후 값을 해당 인덱스의 트로피 높이로 저장한다.
right_max : 오른쪽에서 봤을 때 높이가 가장 큰 트로피. 탐색하다가 더 큰 트로피가 나오면 right_seen+1 한 후 값을 해당 인덱스의 트로피 높이로 저장한다.
import sys
N = int(sys.stdin.readline())
trophy = []
for i in range(N):
trophy.append(int(sys.stdin.readline()))
left_max = 0
right_max = 0
left_seen = 0
right_seen = 0
for i in range(N):
if trophy[i] > left_max :
left_seen += 1
left_max = trophy[i]
if trophy[len(trophy)-i-1] > right_max:
right_seen += 1
right_max = trophy[len(trophy)-i-1]
print(left_seen)
print(right_seen)
29380KB
60ms
'알고리즘 > 탐색' 카테고리의 다른 글
파이썬 | 백준 | 1639 | 행운의 티켓 | list(map(int, list(sys.stdin.readline().strip()))) (0) | 2020.08.07 |
---|---|
파이썬 | 백준 | 1302 | 베스트셀러 | dictionary sorted (0) | 2020.07.28 |