BOJ - 2605번 줄 세우기 (Python)

woga·2021년 1월 4일
0

python 풀이

목록 보기
2/27
post-thumbnail

문제 출처: https://www.acmicpc.net/problem/2605

난이도

Bronze 2


문제 풀이

제공되는 번호는 배열의 인덱스 번호고 출력해야하는 숫자는 인덱스 번호에 따라 넣어진 순서 숫자이다.
이걸 유의하고 숫자가 겹치면 뒤에 있는 숫자들을 뒤로 보내고 해당 인덱스 자리에 맞는 숫자를 넣어주면 된다.


통과 코드

def finalorder():
    n = int(input())
    arr = list(map(int,input().split()))
    ans = [0] * (n)
    for i in range(len(arr)):
        if(ans[arr[i]] != 0):
            for j in range(i-1,arr[i]-1,-1):
                ans[j+1] = ans[j]
        ans[arr[i]] = i+1
    return ans


if __name__ == '__main__':
    ans = finalorder()
    for i in range(len(ans)-1,-1,-1):
        print(ans[i], end=' ')

피드백

오랜만에 파이썬으로 문제 풀려니깐 쉬운 문제여도 시간이 생각보다 걸렸다(문법찾고 오류 나서 다시 수정하고..) 다음에는 더 빨리 풀도록 노력해야겠다

profile
와니와니와니와니 당근당근

0개의 댓글