[Python][백준 10818] 최소, 최대

Date:     Updated:

카테고리:

태그:

🔍 최소, 최대 문제 풀이

백준 10818번 최소, 최대 문제의 파이썬 풀이

📝 문제 설명

N개의 정수가 주어질 때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

💡 풀이

이 문제는 주어진 숫자들 중에서 최솟값과 최댓값을 찾는 간단한 문제이다. Python의 내장 함수인 min()max()를 사용하여 쉽게 해결할 수 있다. 또한, 입력이 많을 수 있으므로 sys.stdin.readline()을 사용하여 입력 속도를 개선했다.

🔍 코드 설명

  1. sys 모듈을 import한다.
  2. 정수의 개수 N을 입력받는다.
  3. N개의 정수를 입력받아 리스트로 저장한다.
  4. min() 함수로 최솟값을 찾는다.
  5. max() 함수로 최댓값을 찾는다.
  6. 최솟값과 최댓값을 공백으로 구분하여 출력한다.

✨ 참고

  • 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)

Python Coding Test 카테고리 내 다른 글 보러가기