문제
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))
'Python' 카테고리의 다른 글
백준 2577 - 숫자의 개수 (파이썬) (0) | 2021.03.25 |
---|---|
백준 2562 - 최댓값 (파이썬) (0) | 2021.03.25 |
백준 1110 - 더하기 사이클 (파이썬) (0) | 2021.03.24 |
백준 10951 - A + B - 4 (0) | 2021.03.24 |
백준 10871 - X보다 작은 수 (파이썬) (0) | 2021.03.24 |