반응형
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
예제 입력 | 예제 출력 |
5 20 10 35 30 7 |
7 35 |
정답
# 나의 코드
import sys
cnt = int(input())
numbers = list(map(int, sys.stdin.readline().strip().split()))
min, max = numbers[0], numbers[0];
for i in numList:
if min > numbers[i]:
min = numbers[i]
elif max < numbers[i]:
max = numbers[i]
print(min, max)
# 다른 사람의 코드
import sys
cnt = int(sys.stdin.readline().strip())
numbers = list(map(int, sys.stdin.readline().strip().split()))
print(min(numbers),max(numbers))
Tip
import sys
sys.stdin.readline().strip()
input() 보다 sys.stdin.readline()가 실행이 더 빠르다.
input은 무엇 때문에 더 느린 것인가?
input은 사용자한테 인자로 받은 문자열을 Prompt 창으로 출력 해준 뒤 사용자의 입력을 기달리기 때문이다.
sys.stdin.readline가 더 빠른 이유
1) Prompt 창에 출력하는 차이
2) input에 비해 sys.stdin.readline이 사용자가 문자를 눌렀을 때 데이터를 버퍼에 저장하여 처리하는 속도가 더 빠르다.
strip
sys.stdin.readline은 개행문자 '\n'까지 입력이 받아지기 때문에 strip 함수를 사용하여 개행문자를 삭제해준다.
min(), max()
min, max는 Python의 내장함수들이다.
for문을 사용하여 if로 min과 max를 비교해 출력한 내 코드보다 min, max 함수를 사용하여 출력한 코드가 실행시간에서 더 우세했다.
1) min, max, sys.stdin.readline을 다 사용한 경우
2) min, max, input을 사용한 경우
3) 내 코드
반응형
'Python 알고리즘' 카테고리의 다른 글
[Python] 백준 10870 피보나치 수 5 (0) | 2021.09.29 |
---|---|
[Python] 백준 2460번 지능형 기차 2 (0) | 2021.09.28 |
[Python] 백준 3460번 이진수 (0) | 2021.09.25 |
[Python] 백준 2501 N번째 약수 구하기 (0) | 2021.09.23 |
[Python] 백준 1271 엄청난 부자2 (0) | 2021.09.22 |