본문 바로가기

코딩/파이썬

[백준/Python] - 1차원 배열 10818번 / 최소, 최대

문제

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

입력

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

출력

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

Python 코드

방법 1 - 파이썬의 내장 함수 max(), min()을 이용

n = int(input())
m = list(map(int, input().split()))

print(min(l),max(l))

(방법 1을 이용할 경우 배열의 크기를 정해준 이유가 없어지므로 방법 2도 참고)

 

방법 2

n = int(input())
l = list(map(int, input().split()))
l_min = l[0]
l_max = l[0]

for i in range(n):
	if l_min > l[i]:
		l_min = l[i]
	if l_max < l[i]:
		l_max = l[i]
        
print(l_min, l_max)

풀이

 최소와 최대값을 담아 줄 변수 l_min과 l_max를 각각 생성해주고

n의 크기 만큼 반복문을 반복해 주는 과정에서

배열 내의 값과 최대 최소값을 비교하여 값을 업데이트 해준다.