[백준] 1083번 소트 ★★★

거북이·2023년 6월 26일
0

백준[골드5]

목록 보기
48/82
post-thumbnail

💡문제접근

  • 버블 정렬 알고리즘을 선택해서 무지성으로 코드를 작성했는데 퍼센트도 보지 못하고 칼같이 WA를 확인했다. 질문게시판에 있는 내용을 참고해서 문제를 다시 이해했고 이 문제의 핵심은 가장 뒤에서부터 큰 숫자를 앞으로 땅겨 오는 것이 핵심이다.
  • 오랜만에 코딩테스트 공부를 다시 시작했는데 취준을 위해서 하루에 3문제씩은 풀면서 알고리즘에 대한 이해 및 문제 풀이를 진행해야겠다.

💡코드(메모리 : 31256KB, 시간 : 44ms)

import sys
input = sys.stdin.readline

N = int(input())
A = list(map(int, input().strip().split()))
S = int(input())

for i in range(N):
    Max = max(A[i:min(N, i+1+S)])
    idx = A.index(Max)
    for j in range(idx, i, -1):
        A[j], A[j - 1] = A[j - 1], A[j]
    S -= (idx - i)

    if S <= 0:
        break

print(' '.join(map(str, A)))

💡소요시간 : 2h

0개의 댓글