• Home
  • About
    • Awesome soubii photo

      Awesome soubii

      초보 개발자의 공부정리용 블로그입니다. 잘못 쓰여진게 있다면 친절히 알려주세요 :)

    • Learn More
    • Twitter
    • Facebook
    • Instagram
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

[Algorithm]2750 수 정렬하기 By Python3

13 Aug 2020

Reading time ~1 minute

오늘의 문제

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

포인트 쳌쳌

  1. 선택, 삽입, 버블 정렬과 같이 단순한 알고리즘 사용해보기
  2. 이중 for문을 사용했다.

최근에 정렬에 관해서 정리를 하고 있기 때문에 간단한 문제지만
각각의 정렬 알고리즘 정석대로 문제를 풀어보려고 했고, 선택, 삽입, 버블 정렬 세 가지로 구현하여 제출해보았다.

선택 정렬 풀이 코드

선택정렬개념정리 포스팅을 참고했다.

#1.선택정렬
n = int(input())
num = []

#리스트 만들기
for i in range(n):
    num.append(int(input()))
    
idx = 0
for i in range(len(num)):
    min_num = 99999
    for j in range(i, len(num)):
        #최소값 비교
        if min_num > num[j]:
            min_num = num[j]
            idx = j
    temp = num[i]
    num[i] = num[idx]
    num[idx] = temp

#결과 출력
for i in num:
    print(i)
    

삽입 정렬 풀이 코드

삽입정렬개념정리 포스팅을 참고했다.

#2.삽입정렬
n = int(input())
num = []

#리스트 만들기
for i in range(n):
    num.append(int(input()))
    
for i in range(len(num)-1):
    j = i
    while j >= 0 and num[j] > num[j+1]:
        temp = num[j]
        num[j] = num[j+1]
        num[j+1] = temp
        j -=1 
#결과 출력
for i in num:
    print(i)

버블 정렬 풀이 코드

버블정렬개념정리 포스팅을 참고했다.

#3.버블정렬
n = int(input())
num = []

#리스트 만들기
for i in range(n):
    num.append(int(input()))
    
for i in range(len(num)):
    for j in range(len(num)-i-1):
        if num[j] > num[j+1]:
            temp = num[j]
            num[j] = num[j+1]
            num[j+1] = temp
#결과 출력
for i in num:
    print(i)

세가지 코드 채점 결과

채점 결과 소요되는 시간을 비교해봤을 때 삽입정렬, 버블정렬, 선택정렬 순으로 빨랐다.
윗쪽부터 버블정렬, 삽입정렬, 선택정렬이다.

image



algorithmbojpython3 Share Tweet +1