인프런 커뮤니티 질문&답변

조원준님의 프로필 이미지

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

10. 역수열(그리디)

이 풀이도 가능한가요?

작성

·

172

9

n = int(input())

a =list(map(int,input().split()))

a = a[::-1]

ans=[]

for x in a:

        ans.insert(x,n)

        n -=1

#print(ans)

리스트를 먼저 뒤집은 다음에 가장 큰수 부터 차례 차례로 해당 인덱스에 인서트 해줘도 되는 것 같습니다. 

답변 2

1

김태원님의 프로필 이미지
김태원
지식공유자

지금 처럼 공부하면 굉장한 실력자가 될 것 같습니다. 

원래 역수열은 1부터 처리해도 되고, N부터 처리해도 됩니다. 원리는 같습니다.

 N부터 처리한다는 것은 ans에 이미 들어가 있는 숫자는 현재 처리하려는  숫자보다 모두 크다는 것이므로 현재 처리하려는 숫자가 x번 index로 insert되면 자기 앞에 무조건 큰 숫자가 x개 생기고 현재 숫자 다음에 처리되는 숫자들은 자기보다 작기때분에 어디에 insert 되도 상관없습니다.

오늘은 제가 컴퓨터로 작업을 하고 있어서 빠르게 답변하지만, 수업중이거나 다른 일을 하면 늦어질 수 도 있습니다.ㅜㅜ

0

조원준님의 프로필 이미지
조원준
질문자

감사합니다 열심히하겠습니다