728x90
반응형
https://www.acmicpc.net/problem/11931
문제를 풀면서 몰랐던 개념
[Python] 파이썬 입력 받기 (라이브러리 사용)
-> (sys.stdin.readline)
: 한 두줄 입력받는 문제들과 다르게, 반복문으로 여러줄을 입력 받아야 할 때는 input()으로 입력 받는다면 시간 초과가 발생할 수 있어서 sys.stdin.readline()을 사용해야 한다!
# 한 개의 정수를 입력 받을 때
import sys
a = int(sys.stdin.readline())
# 정해진 개수의 정수를 한 줄에 입력 받을 때
import sys
a,b,c = map(int,sys.stdin.readline().split())
# 임의의 개수의 정수를 한 줄에 입력 받아 리스트에 저장할 때
import sys
arr = 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)]
# 임의의 개수의 정수를 줄 단위로 입력 받아 리스트에 저장할 때 (이번 문제에서 한 것)
n = int(sys.stdin.readline())
arr = []
for i in range(n):
a = int(sys.stdin.readline())
arr.append(a)
문제의 접근 방법
문제 자체는 매우 쉬워보이지만, 제한 시간을 생각해서 의미 없이 소요되는 시간을 단축시킬 수 있는 방법을 생각하기.
내가 막혔던 부분
시간 초과!!!
문제 풀이 방법
- 입력 받을 숫자의 개수 n개 입력 받기
- sys 라이브러리를 사용하여 n개의 숫자를 줄 단위로 반복하여 입력 받기
- 리스트 arr 에 입력 받은 숫자들 추가하기
- 리스트 arr 를 내림차순으로 정렬
- 출력 형식에 맞게 줄을 바꿔가며 출력
소스코드
import sys
n = int(sys.stdin.readline())
arr = []
for i in range(n):
a = int(sys.stdin.readline())
arr.append(a)
arr.sort(reverse=True)
[print(i) for i in arr]
728x90
반응형
'백준 write-up > 정렬 & 그리디' 카테고리의 다른 글
[백준] 거북이 : 2959번 - Python (0) | 2021.07.19 |
---|---|
[백준] 콘테스트 : 5576번 - Python (0) | 2021.07.19 |
[백준] N번째 큰 수 : 2693번 - Python (0) | 2021.07.18 |
[백준] 시리얼 번호 : 1431번 - Python (0) | 2021.07.17 |
[백준] 중복 빼고 정렬하기 : 10867번 - Python (0) | 2021.07.16 |