Language/Python

[BAEKJOON]백준 10818번: 최소, 최대 파이썬

림밤빵 2021. 2. 3. 17:18
728x90

문제

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

입력

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

출력

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

코드1

cnt = int(input())
numbers = list(map(int, input().split()))
max = numbers[0]
min = numbers[0]

for i in numbers[1:]:
    if i > max:
        max = i
    elif i < min:
        min = i

print(min,max)​

코드 실행 결과

코드2

cnt = int(input())
numbers = list(map(int, input().split()))
print(min(numbers),max(numbers))

코드 실행 결과

코드설명

cnt에 정수의 개수를 입력 받고, numbers에 정수를 입력받는다. input().split()을 이용하여 공백으로 구분한다.

max와 min에 각 각 numbers의 첫번째 요소를 넣어준다.

for문에서 numbers의 2번째 요소부터 마지막 요소까지 차례로 비교해준다.

max보다 크면, max값을 바꿔주고 

min보다 작으면, min값을 바꿔준다.

print()로 최댓값, 최솟값을 출력한다.

cnt = int(input())
numbers = list(map(int, input().split()))
max = numbers[0]
min = numbers[0]

for i in numbers[1:]:
    if i > max:
        max = i
    elif i < min:
        min = i

print(min,max)​

 

위의 코드에서 max, min을 정의하고 for문을 통해 비교하는 코드를 파이썬에서는 작성할 필요가 없다.

파이썬의 내장함수 min(), max()를 이용하면 최댓값과 최솟값을 편하게 구할 수 있다.

cnt = int(input())
numbers = list(map(int, input().split()))
print(min(numbers),max(numbers))

 

728x90