본문 바로가기
Algorithm/알고리즘 문제풀이

백준 2750 파이썬 - 수 정렬하기(삽입정렬)

by devraphy 2021. 8. 24.

1. 문제 링크

https://www.acmicpc.net/problem/2750

 

2750번: 수 정렬하기

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

 


2. 나는 어떻게 생각했는가? 

# 삽입정렬을 사용해서 풀어보자. 
from typing import List
from sys import setprofile, stdin
input = stdin.readline

def insertion_sort(case: List[int]) -> List[int]:
  for idx in range(1, len(case)):
    current = case[idx]
    flag = idx - 1
    while flag >= 0 and current < case[flag]:
      case[flag + 1] = case[flag]
      flag = flag - 1
    case[flag + 1] = current
  return case

t = int(input())
case = []

for _ in range(t):
  case.append(int(input()))

print("\n".join(map(str, insertion_sort(case))))

댓글