반응형
# Problem
민식이는 “오민식”이라는 팀이름으로 수없이 많은 로봇대회를 우승했다. 따라서 민식이의 집에는 트로피가 많다. 민식이는 트로피를 어떤 선반 위에 올려놨다. 이 선반은 민식이의 방문을 열고 들어가자마자 선반의 왼쪽이 보인다. 다른말로 하자면, 뒤의 트로피가 앞의 트로피에 가려져 있다는 말이다. 안타깝게도, 높이가 큰 트로피가 높이가 작은 트로피의 왼쪽에 있다면, 높이가 작은 트로피는 큰 트로피에 가려서 보이지 않게 된다. 트로피는 자기의 앞에 (보는 사람의 관점에서) 자기보다 높이가 작은 트로피가 있을 때만 보이게 된다. 민식이는 선반을 180도 회전시켜서 트로피가 보이는 개수를 변하게 할 수도 있다. 선반위에 올려져 있는 트로피의 높이가 주어졌을 때, 왼쪽에서 봤을 때 보이는 개수와, 오른쪽에서 봤을 때 보이는 개수를 출력하는 프로그램을 작성하시오. 입력첫째 줄에 트로피의 개수 N (1 ≤ N ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 왼쪽의 트로피부터 차례대로 높이가 주어진다. 트로피의 높이는 100보다 작거나 같은 자연수이다. 출력첫째 줄에 왼쪽에서 봤을 때 보이는 개수, 둘째 줄에 오른쪽에서 봤을 때 보이는 개수를 출력한다. |
# My Answer
n = int(input())
tr=[]
for i in range(n):
tr.append(int(input()))
m = tr[0]
rm = tr[n-1]
cnt=1
rcnt = 1
for i in range(1,n):
if tr[i]> m:
cnt+=1
m = tr[i]
for i in range(n-2,-1,-1):
if tr[i]> rm:
rcnt+=1
rm = tr[i]
print(cnt)
print(rcnt)
# Solution 1
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))
하나의 함수로 선언 후 배열을 뒤집어서 다시 실행
반응형
'Algorithm > 백준 알고리즘 풀이' 카테고리의 다른 글
❗️[Baekjoon] 2110. 공유기 설치 ( 이진 탐색 ) (0) | 2021.04.19 |
---|---|
[Baekjoon] 1236. 성 지키기 (0) | 2021.04.19 |
[Baekjoon] 1302. 베스트셀러 (0) | 2021.04.19 |
[Baekjoon] 1568. 새 (0) | 2021.04.19 |
[Baekjoon] 1543. 문서 검색 (0) | 2021.04.19 |