문제
코드
My answer
import math
import sys
input = sys.stdin.readline
n = int(input())
award = [int(input()) for _ in range(n)]
left = [1 for i in range(1, len(award)) if award[i] > max(award[:i])]
award.reverse()
right = [1 for i in range(1, len(award)) if award[i] > max(award[:i])]
print(sum(left)+1)
print(sum(right)+1)
Another answer
def ascending(array):
now = array[0]
result = 1
for i in range(1, len(array)):
if now < array[i]:
result += 1
now = array[i]
return result
n = int(input())
array = []
for _ in range(n):
array.append(int(input()))
print(ascending(array))
array.reverse()
print(ascending(array))
풀이
계속해서 현재 책 이전까지의 최대값을 갱신해가며, 최대값보다 작을 경우에만 카운트를 올려주는 방식으로 구현하였다.
my answer은 list comprehension을 이용해서 구현하였고, another answer은 함수를 이용해서 구현하였다.
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python] 백준 #18511- 큰 수 구성하기 (0) | 2023.09.26 |
---|---|
[Python] 백준 #18310- 안테나 (0) | 2023.09.26 |
[Python] 백준 #1568- 새 (0) | 2023.09.26 |
[Python] 백준 #1427- 소트인사이드 (0) | 2023.09.26 |
[Python] 백준 #1920- 수 찾기 (0) | 2023.09.25 |