N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
5
20 10 35 30 7
7 35
매서드는 있을 것 같은데 떠오르진 않고, 한개씩 비교해가며 변수에 값을 할당하면 풀 수 있을거라 생각했다. 그치만 그러기 위해 무한 +정수 값 무한-정수 값도 알았어야하긴했어서 float('inf') 가 필요하긴했지만..
N = int(input())
list = list(map(int, input().split()))
minInt = float('inf')
maxInt = float('-inf')
for i in range(N):
if list[i] > maxInt:
maxInt = list[i]
if list[i] < minInt:
minInt = list[i]
print(minInt, maxInt)
정말 노가다로 풀어서 걸린 시간이 가장 오래 걸렸을 것이다. 그래서 더 효율 적인 답을 찾아보기로 하였다.
역시나 리스트에서 최소값 최대값구하는 메서드 min(), max()가 있었고, 그걸 적용하면
N = int(input())
numbers = list(map(int, input().split()))
minInt = min(numbers)
maxInt = max(numbers)
print(minInt, maxInt)
이렇게 간단히 풀 수 있었는데, 채점 시간 자체는 여전히 오래걸리긴하였다.
(시간복잡도 O(N))