본문 바로가기

Python

백준 10818 - 최소, 최대 (파이썬)

문제

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

입력

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

출력

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.

 

# 해결법

 

처음에는 N을 정수로 받고, input().split()으로 리스트를 받아주었는데 

print(min( ), max( )) 과정에서 뒤에오는 max에서 오류가 발생하는 문제가 있었다.

알고보니 min 이나 max 는 비교과정에서 값들을 소진하는데 그래서 뒤의 max에서 

오류가 자꾸 발생했던 것이다.

그래서 그냥 min 용 하나, max 용 하나를 따로 만들었다.

 

# 나의 코드

a = int(input())
b = input().split()
intlist = map(int, b)
intlist2 = map(int, b)
print(min(intlist), max(intlist2))

정상적으로 작동하고 통과했지만 코드를 더 짧게 줄일 수 있을 것 같아서 고민해봤다.

min과 max 값을 구할때마다 값들이 소진된다면 튜플로 고정해버리면 되지않을까? 하는 생각이 들어서

수정했더니 훨씬 간결해졌다.

 

# 수정 코드

 

a = int(input())
b = tuple(map(int, input().split()))
print(min(b), max(b))