Problem Solving/BOJ
[BOJ] 1668
fabichoi
2022. 3. 14. 23:45
https://www.acmicpc.net/problem/1668
# BOJ 1668
trophies = []
left_max, right_max = 0, 0
left_answer, right_answer = 0, 0
n = int(input())
for _ in range(n):
trophies.append(int(input()))
left_answer = 0
for i in range(n):
if left_max < trophies[i]:
left_max = trophies[i]
left_answer += 1
right_answer = 0
for i in range(n-1, -1, -1):
if right_max < trophies[i]:
right_max = trophies[i]
right_answer += 1
print(left_answer)
print(right_answer)
오랜만에 문제 풀어봄.
별거 아닌 풀이를 해보자면, list의 index 0에서부터 n-1까지 진행하면서 현재 값보다 큰 경우 count 및 max값 update
반대로 list의 index가 n-1에서부터 0까지 진행하면서 현재 값보다 큰 경우 count 및 max값 update 하면 됨
첫 번째 로직 한 번 호출 후, list를 reverse 한 뒤 첫 번째 로직을 한 번 더 호출하면 되긴 하는데..
굳이 리펙토링을 해야 하나 싶음 ㅋㅋ
반응형