N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
n = int(input())
nums = list(map(int, input().split()))
max_num = nums[0]
min_num = nums[0]
for i in range(0, n):
if int(nums[i]) > max_num:
max_num = nums[i]
if int(nums[i]) < min_num:
min_num = nums[i]
print(min_num, max_num)
⚠️ 주의 포인트
입력값 n을 활용해 0부터 n-1까지 for문을 돌린다.
인덱스를 사용해 리스트를 조회한다.
n = int(input())
nums = list(map(int, input().split()))
max_num = num[0]
min_num = num[0]
for i in nums:
if i > max_num:
max_num = i
elif i < min_num:
min_num = i
print(min_num, max_num)
⚠️ 주의 포인트
입력값 n을 사용하지 않고, 리스트 안의 요소를 직접 조회한다.
백준 문제를 풀다 보니 종종 n을 첫째 줄에 입력받고, n개의 정수를 둘째줄에 입력받는다는 조건이 제시되는 경우가 있다. 이럴 때 n개라는 조건을 코드 작성 시 꼭 포함시켜야 하는 걸까? 채점에는 딱히 영향을 주는 것 같지는 않고, 이번 문제의 경우 Solution2가 더 빨랐다는 차이점은 있었다.
+어떤 방법으로 풀어도 채점이 너무 느리다.. 내문제인가백준문제인가 ㅠ