[Silver V] 삽입 정렬을 해볼까 - 33846

문제 링크

성능 요약

메모리: 260340 KB, 시간: 648 ms

분류

정렬

제출 일자

2026년 4월 1일 10:10:29

문제 설명

삽입 정렬은 배열의 요소를 앞에서부터 차례대로 이미 정렬된 배열과 비교하여 자신의 위치를 찾아 삽입해 정렬하는 알고리즘이다. 아래 그림은 배열 $[3\,1\,4\,1\,5\,9\,2\,6\, 5\, 3\, 5]$를 삽입 정렬하는 과정을 나타낸 것이다.

길이 $n$의 배열 $a$가 주어질 때 $t$번째 원소까지 올바른 위치에 삽입한 배열을 구해보자.

입력

첫 번째 줄에 배열 $a$의 길이 $n$과 $t$가 주어진다. ($1 \leq n \leq 10^6; 1 \leq t \leq n$)

두 번째 줄에 $a$의 원소 $n$개가 공백으로 구분되어 주어진다. ($1\leq a_i \leq 10^{9}$)

주어지는 모든 수는 정수이다.

출력

$t$번째 원소까지 올바른 위치에 삽입한 배열을 공백으로 구분하여 출력한다.


💡 해결 방법

💻 코드

import sys
input = sys.stdin.readline
 
n, t = map(int, input().split())
 
list1 = list(map(int, input().split()))
 
 
 
sortedlist1 = sorted(list1[0 : t])
 
 
list1 = list1[t:]
 
 
print(*sortedlist1, *list1)