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

Lea·2020년 7월 21일
0

백준

목록 보기
18/24

문제

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

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

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

예제 입력 1
5
20 10 35 30 7
예제 출력 1
7 35

코드

numbers = int(input())
number_list = list(map(int, input().split()))
max_num = number_list[0]
min_num = number_list[0]
for num in number_list:
    if num > max_num:
        max_num = num
    if num < min_num:
        min_num = num
print(min_num, max_num)

해설

numbers = int(input())
number_list = list(map(int, input().split()))

첫째 줄에 정수의 개수 N(numbers)을 입력하는 함수 input()을 작성한 뒤, int형일 때만 입력받기 위해 int()로 감싸준다.

둘째 줄에는 N개의 정수를 공백을 기준으로 입력하기 위해 input()에 .split() 메소드를 덧붙인다. 여러 개의 입력을 각각 int로 바꿔줄 필요없이 한 번에 같은 효과를 주기 위해 map을 이용한다. 입력값을 리스트로 만들기 위해 list()로 전체를 감싼다.

max_num = number_list[0]
min_num = number_list[0]
for num in number_list:
    if num > max_num:
        max_num = num
    if num < min_num:
        min_num = num
print(min_num, max_num)

최댓값, 최솟값을 for문을 통해 구할 예정이기 때문에 변수 max_num과 min_num을 설정해 각각 number_list[0]을 값으로 넣어준다.

for문을 이용하여, if문을 통해 num이 max_num보다 클 경우에는 max_num에 num을 넣어주고, num이 min_num보다 작을 경우에는 min_num에 num을 넣어주는 과정을 반복한다.

for문 반복이 종료되면, print()를 통해 값을 출력한다.

profile
디지털 노마드가 되고 싶은 레아

0개의 댓글