파비의 매일매일 공부기록

[BOJ] 1668 본문

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 한 뒤 첫 번째 로직을 한 번 더 호출하면 되긴 하는데..
굳이 리펙토링을 해야 하나 싶음 ㅋㅋ

반응형

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ] 1673 [재시도 필요]  (0) 2022.03.16
[BOJ] 1672 [재시도 필요]  (0) 2022.03.15
[BOJ] 1652 - 이번주는 쉴 예정  (0) 2022.03.07
[BOJ] 1598 [재시도 필요]  (0) 2022.03.06
[BOJ] 1592 [재시도 필요]  (0) 2022.03.05
Comments