코딩 기록소
article thumbnail
반응형

문제

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) 내 코드

반응형
profile

코딩 기록소

@seungyong20

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!