[백준] 14659번 : 한조서열정리하고옴ㅋㅋ (파이썬)



문제



나의 답안

n=int(input())
arr=list(map(int,input().split()))

high=0#제일 높은 봉우리
cnt=0#사냥꾼이 잡을 수 있는 수
total=[]#전체 저장

for i in arr:
    if i>high:#가장 높은 값보다 배열이 크면
        high=i#해당값을 바꾸고(최댓값 구하기)
        cnt=0#0으로 초기화
    else:#아니라면
        cnt+=1#용을 사냥할 수 있으므로 1증가
    total.append(cnt)#배열에 추가
print(max(total))#가장 큰 값 출력

접근 방법

  • 그리디 문제이다.
  • 최댓값을 구하는 방식으로 가장 높은 봉우리를 찾으면 최댓값을 변경해주면 된다
  • 오른쪽으로만 진행하므로 자신보다 큰 봉우리가 나오기 전까지 cnt를 1씩 늘려주면 된다.

좋은 웹페이지 즐겨찾기