문제
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 |