본문 바로가기
알고리즘 (Python)

역수열 (그리디)

by ppirae 2022. 3. 26.

인프런 김태원님의 파이썬 알고리즘 문제풀이를 보고 작성한 글입니다.

https://inf.run/Uiep

 

파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의

파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런...

www.inflearn.com

나는 이번 문제를 보고

푸는 방법은 떠올렸으나

코드 구현이 아직도 제대로 안된다..

#내 풀이 
n = int(input())
rev = list(map(int ,input().split()))
a = [0] * n

print(rev)
print(a)

cnt = 0
for i in range(1, n+1):
    tmp = rev[i-1]
    for j in range(len(a)):
        if a[j] == 0:
            cnt += 1
            if tmp == cnt:

하다가 중간에 계속 안풀려서 강의를 봤다.

내 생각은 rev의 갯수만큼 0을 건너뛰어서 넣으면 되는데

#강의 풀이
n = int(input())
a = list(map(int, input().split()))
seq = [0] * n
for i in range(n):
    for j in range(n):
        if a[i] == 0 and seq[j] == 0:
            seq[j] = i+1
            break
        elif seq[j] == 0:
            a[i] -= 1
for x in seq:
    print(x, end = ' ')

강의의 a[i] -= 1 부분이 잘 떠오르지않았다.

 

 

댓글