Tiny Bunny
본문 바로가기
Algorithm/Python

[BOJ #2751] 수 정렬하기 2

by nowag 2024. 2. 13.

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

 

입력

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

 

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

 

내가 쓴 코드 1 : 선택정렬 이용 -> 시간초과

import sys; input = sys.stdin.readline
N = int(input())
number = []
for n in range(N):
    number.append(int(input()))

for i in range(N-1):
    minIdx = i
    for j in range(i+1, N):
        if number[j] < number[minIdx]:
            minIdx = j
    number[i], number[minIdx] = number[minIdx], number[i]

for i in number:
    print(i)

문제를 딱 보고 얼마전 배운 정렬을 사용해서 풀면 딱이겠다! 싶어서 선택정렬 배웠던 것을 복습하며 코드를 작성해보았다. 출력 값도 아주 잘나왔다! 그래서 난 내가 아주 잘한줄로만 알았지.. 제출하기 전까진,, ㅎ

제출해보니 시간초과가 떴다ㅠㅜ... 그래서 에이설마 하고 아..진짜 sort()를 써서 풀고싶지 않았는데,, 이렇게 해야만 했던 것이었던 것이었다..! ㅎ... 머 어쨋든 혼자 복습하고 혼자 뿌듯해 했던 문제풀이 끗-!

 

내가 쓴 코드 2 : 내장함수 이용

import sys; input = sys.stdin.readline
N = int(input())
number = []
for n in range(N):
    number.append(int(input()))

for i in sorted(number):
    print(i)

 

출력 결과

 

제출 결과

 

728x90
반응형

'Algorithm > Python' 카테고리의 다른 글

[BOJ #10818] 최소, 최대  (3) 2024.02.14
[BOJ #1935] 후위 표기식 2  (1) 2024.02.14
[BOJ #15649] N 과 M  (1) 2024.02.13
[SWEA #1222] 계산기1  (1) 2024.02.13
[SWEA #11613] 스택2 - Forth  (2) 2024.02.13