본문 바로가기

코딩테스트/BOJ

[파이썬/백준] 1688번: 트로피 진열 (Python)

문제

www.acmicpc.net/problem/1668

 

1668번: 트로피 진열

민식이는 “오민식”이라는 팀이름으로 수없이 많은 로봇대회를 우승했다. 따라서 민식이의 집에는 트로피가 많다. 민식이는 트로피를 어떤 선반 위에 올려놨다. 이 선반은 민식이의 방문을 열

www.acmicpc.net

 

풀이

 - 브루트 포스, 완전탐색

 

 - 왼쪽에서 볼 때와 오른쪽에서 볼때로 나누어 max값은 배열의 끝 값(왼쪽/ 오른쪽)으로 초기화

 

 - 왼쪽에서 볼 때, arr[i+1]이 max값보다 크면 cnt 증가

 

 - 오른쪽에서 볼 때, arr[i]가 max보다 크면 cnt 증가

 

 - 반례 4 1 100 2 99 를 넣어보고나서 문제를 해결할 수 있었다.

 

코드

n = int(input())

arr = []

for _ in range(n):
    arr.append(int(input()))

# 왼쪽에서 볼 때
cnt, maxNum = 1, arr[0] # max값 = arr[0]

for i in range(0, n-1):
    if arr[i+1] > maxNum:
        cnt += 1
        maxNum = arr[i+1]
print(cnt)

# 오른쪽에서 볼 때
cnt, maxNum = 1, arr[n-1] # max값 = arr[n-1]

for i in range(n-1, -1, -1):
    if arr[i] > maxNum:
        cnt += 1
        maxNum = arr[i]

print(cnt)