문제 출처
링크 클릭시 맥의 경우 command, 윈도우의 경우 ctrl을 누르면서 클릭하면 새창에서 링크오픈이 가능합니다.
테스트 케이스를 모두 통과하지 못함(2019.08.12)
Number = int(input())
NumList = []
count = 1
for i in range(Number):
NextNum = int(input())
NumList.append(NextNum)
for j in range(Number-1):
if NumList[Number-1] < NumList[j] :
count += 1
print(count)
문제
- 채점기준에 나와있는 각 테스트 케이스에 대한 배점정보와 제약조건에 대한 문제파악이 안됨
- 반례1) 입력값 6, 7, 9, 7, 6, 4, 6인 경우.. 6번막대기보다 큰 수들 중에 중복이 되는 2, 4번막대기의 중복을 없애야 한다.
- 반례2) 입력값 6, 7, 9, 6, 5, 4, 5인 경우.. 1번막대기가 6번막대기보다 크더라도 2번막대기보다 작다면? 그럴때는 보이지 않기때문에 count해선 안된다.
해결
# 몇개의 수를 입력할 것인지 입력
Number = int(input())
# 막대기들의 높이값이 입력된 리스트
NumList = []
# Number의 수만큼 입력할 막대기들의 높이를 입력
for i in range(Number):
NumList.append(int(input()))
# 일단 오른쪽에서 볼 수 있는 가장 맨앞의 막대기로 초기화시켜준다.
BigBar = NumList[Number-1]
# 6번 막대기보다 큰 막대기들을의 리스트
BigList = []
BigList.append(BigBar)
for j in range(1, Number):
if BigBar < NumList[Number - 1 - j] :
BigList.append(NumList[Number - 1 - j])
BigBar = NumList[Number -1 - j]
# 중복 제거를 위한 set 은 안해도됨
# 마지막 막대기보다 큰 막대들의 중복 제거를 위해서 set( )을 이용했는데 안해도 될 부분이었으니 삭제해도 된다. 어차피 BigBar와의 크기비교에서 BigList에 들어가지 않기에 중복될 일이 없기 때문.
# BigList = set(BigList)
print(len(BigList))
반응형
'알고리즘 > 기타 사이트 알고리즘' 카테고리의 다른 글
2019 카카오 개발자 겨울 인턴십 크레인 인형뽑기 게임 (0) | 2020.08.27 |
---|---|
2018 KAKAO BLIND 비밀지도 문제 (0) | 2020.08.26 |
프로젝트 오일러 02번 문제_피보나치 수열 (0) | 2020.08.23 |
하노이의 탑(Tower of Hanoi) (0) | 2020.05.10 |
[구름에듀_데일리알고리즘] KOI_2019 회문(미해결) (0) | 2019.08.13 |