Just Fighting

[백준] 수 정렬하기 2 본문

Algorithm/코딩테스트 연습

[백준] 수 정렬하기 2

yennle 2022. 6. 13. 22:28
728x90

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

 

2751번: 수 정렬하기 2

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

www.acmicpc.net

 

 

< 문제 설명 >

수 정렬하기

N은 1부터 1,000,000이고, N개의 숫자는 모두 절대값이 1,000,000보다 같거나 작음.

 

 

< 문제 풀이 >

sort()가 O(nlogn)이라는 것을 알았다,,

그리고 input()으로 써서 틀린걸 한참을 돌아갈뻔했다.

잊지말자 sys.stdin.readline()

import sys

n = int(input())
num = []

for i in range(n):
    num.append(int(sys.stdin.readline())) # 입력은 input()보다 이게 빠름

num.sort()  # sort()는 O(nlogn)

for i in num:
    print(i)

 

 

< 문제 풀이 2 >

출력할 때에도 시간을 더욱 줄일 수 있다.

sys.stdout.write()를 사용하면 된다.

import sys

n = int(input())
num = []

for i in range(n):
    num.append(int(sys.stdin.readline()))

num.sort()

for i in num:
    sys.stdout.write(str(i)+'\n')

 

 

시간문제가 난 제일 어려운 것 같다,,

 

 

728x90

'Algorithm > 코딩테스트 연습' 카테고리의 다른 글

[프로그래머스] 예산  (0) 2022.06.15
[프로그래머스] 소수 만들기  (0) 2022.06.15
[백준] 수 정렬하기 3  (0) 2022.06.06
[백준] 뒤집힌 덧셈  (0) 2022.06.02
[백준] 운동  (0) 2022.05.26
Comments