2022. 11. 21. 21:24ㆍBaekjoon/Bronze
https://www.acmicpc.net/problem/1668
1668번: 트로피 진열
민식이는 “오민식”이라는 팀이름으로 수없이 많은 로봇대회를 우승했다. 따라서 민식이의 집에는 트로피가 많다. 민식이는 트로피를 어떤 선반 위에 올려놨다. 이 선반은 민식이의 방문을 열
www.acmicpc.net
문제 설명
민식이는 “오민식”이라는 팀이름으로 수없이 많은 로봇대회를 우승했다. 따라서 민식이의 집에는 트로피가 많다. 민식이는 트로피를 어떤 선반 위에 올려놨다. 이 선반은 민식이의 방문을 열고 들어가자마자 선반의 왼쪽이 보인다. 다른말로 하자면, 뒤의 트로피가 앞의 트로피에 가려져 있다는 말이다.
안타깝게도, 높이가 큰 트로피가 높이가 작은 트로피의 왼쪽에 있다면, 높이가 작은 트로피는 큰 트로피에 가려서 보이지 않게 된다. 트로피는 자기의 앞에 (보는 사람의 관점에서) 자기보다 높이가 작은 트로피가 있을 때만 보이게 된다. 민식이는 선반을 180도 회전시켜서 트로피가 보이는 개수를 변하게 할 수도 있다.
선반위에 올려져 있는 트로피의 높이가 주어졌을 때, 왼쪽에서 봤을 때 보이는 개수와, 오른쪽에서 봤을 때 보이는 개수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 트로피의 개수 N (1 ≤ N ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 왼쪽의 트로피부터 차례대로 높이가 주어진다. 트로피의 높이는 100보다 작거나 같은 자연수이다.
출력
첫째 줄에 왼쪽에서 봤을 때 보이는 개수, 둘째 줄에 오른쪽에서 봤을 때 보이는 개수를 출력한다.
예제 입력 1
5
1
2
3
4
5
예제 출력 1
5
1
예제 입력 2
4
5
5
5
5
예제 출력 2
1
1
예제 입력 3
5
1
2
5
2
1
예제 출력 3
3
3
예제 입력 4
7
1
4
2
5
3
7
1
예제 출력 4
4
2
문제 풀이
import sys
input = sys.stdin.readline
high = 0
trophys = []
right_result = 0
left_result = 0
N = int(input())
for _ in range(N):
trophys.append(int(input()))
for trophy in trophys:
if trophy > high:
right_result += 1
high = trophy
high = 0
for trophy in trophys[::-1]:
if trophy > high:
left_result += 1
high = trophy
print(right_result)
print(left_result)
'Baekjoon > Bronze' 카테고리의 다른 글
[Baekjoon] 거스름돈 / Python, 파이썬 / 5585 (0) | 2022.12.08 |
---|---|
[Baekjoon] 성 지키기 / Python, 파이썬 / 1236 (0) | 2022.11.21 |
[Baekjoon] 새 / Python, 파이썬 / 1568 (0) | 2022.11.21 |
[Baekjoon] 피보나치 수 / Python, 파이썬 / 2747 (0) | 2022.11.19 |
[Baekjoon] 수 정렬하기 3 / Python, 파이썬 / 10989 (0) | 2022.11.18 |