[Python][백준 10818] 최소, 최대
카테고리: Python Coding Test
🔍 최소, 최대 문제 풀이
백준 10818번 최소, 최대 문제의 파이썬 풀이
📝 문제 설명
N개의 정수가 주어질 때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
💡 풀이
이 문제는 주어진 숫자들 중에서 최솟값과 최댓값을 찾는 간단한 문제이다. Python의 내장 함수인 min()
과 max()
를 사용하여 쉽게 해결할 수 있다. 또한, 입력이 많을 수 있으므로 sys.stdin.readline()
을 사용하여 입력 속도를 개선했다.
🔍 코드 설명
sys
모듈을 import한다.- 정수의 개수 N을 입력받는다.
- N개의 정수를 입력받아 리스트로 저장한다.
min()
함수로 최솟값을 찾는다.max()
함수로 최댓값을 찾는다.- 최솟값과 최댓값을 공백으로 구분하여 출력한다.
✨ 참고
sys.stdin.readline()
은input()
보다 빠른 입력 방식이다..strip()
은 문자열 양끝의 공백과 개행문자를 제거한다.map()
과split()
을 사용하여 공백으로 구분된 여러 정수를 입력받을 수 있다.- Python의
min()
과max()
함수는 리스트의 최솟값과 최댓값을 효율적으로 찾아준다.
🚀 다른 풀이 방법
리스트를 한 번만 순회하여 최솟값과 최댓값을 동시에 찾는 방법도 있다:
min_value = float('inf') # 최솟값을 무한대로 초기화 이 문제에서는 1000001도 가능
max_value = float('-inf') # 최댓값을 무한대로 초기화 이 문제에서는 -1000001도 가능
for num in numbers:
min_value = min(min_value, num)
max_value = max(max_value, num)
📝 코드
import sys
N = int(sys.stdin.readline().strip())
numbers = list(map(int, sys.stdin.readline().strip().split()))
min_value = min(numbers)
max_value = max(numbers)
print(min_value, max_value)