[백준] 2751번 수 정렬하기2

거북이·2023년 1월 2일
0

백준[실버5]

목록 보기
15/114
post-thumbnail

💡문제접근

단순 정렬 문제

💡코드1

N = int(input())
number = []
for _ in range(N):
    number.append(int(input()))

number.sort()
for i in number:
    print(i)

📌코드1 실행 결과 : 시간 초과

💡코드2(메모리 : 76328KB, 1436ms)

import sys
input = sys.stdin.readline

N = int(input())
number = []
for _ in range(N):
    number.append(int(input()))

number.sort()
for i in number:
    print(i)

💡input()대신 sys.stdin.readline()을 사용하는 이유

한 두줄 입력받는 문제들과 다르게, 반복문으로 여러줄을 입력 받아야 할 때는 input()으로 입력 받는다면 시간초과가 발생할 수 있다.

import sys

T = int(input()) #Test case
for i in range(T):
        a,b = map(int, sys.stdin.readline().split())
        print(a+b)

테스트케이스의 개수 T를 입력하는 과정은 상관없지만 반복문으로 여러 줄을 입력받아야 하는 상황이라면 반드시 sys.stdin.readline()을 사용해야 시간초과가 발생하지 않는다.

📌한 개의 정수를 입력받을 때

import sys
a = int(sys.stdin.readline())

📌정해진 개수의 정수를 한줄에 입력받을 때

import sys
a,b,c = map(int,sys.stdin.readline().split())

📌 임의의 개수의 정수를 한줄에 입력받아 리스트에 저장할 때

import sys
data = list(map(int,sys.stdin.readline().split()))

📌 임의의 개수의 정수를 n줄 입력받아 2차원 리스트에 저장할 때

import sys
data = []
n = int(sys.stdin.readline())
for i in range(n):
    data.append(list(map(int,sys.stdin.readline().split())))

📌 문자열 n줄을 입력받아 리스트에 저장할 때

import sys
n = int(sys.stdin.readline())
data = [sys.stdin.readline().strip() for i in range(n)]

strip()은 문자열 맨 앞과 맨 끝의 공백문자를 제거해주는 역할을 수행한다.

💡소요시간 : 2m

0개의 댓글