문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
입출력예시
1차원 배열 첫 문제, 10818번: 최소, 최대
배열을 입력받고 배열의 최소, 최대값을 찾아 출력하는 문제이다.
이 문제를 보고 가장 먼저 생각난 두가지는 max, min함수와 math.inf이다.
먼저 math.inf를 사용해 완성한 코드는 다음과 같다.
import math
N = int(input())
A = map(int, input().split())
max_num = -math.inf #최대값을 찾기 위한 초기 비교값
min_num = math.inf #최소값을 찾기 위한 초기 비교값
for i in A:
if i <= min_num:
min_num = i
if i >= max_num:
max_num = i
print(min_num, max_num, end = ' ')
min(), max()를 사용한 코드는 다음과 같다.
input().split()이 output을 리스트로 하긴 하지만, 리스트 요소들은 문자열로 반환되기 때문에 int로 맞춰주는 작업이 필요하다.
map을 사용하면 해당 변수를 한 번은 사용할 수 있지만 다시 사용하려 하면 error가 발생한다. 이를 해결해주기 위해 해당 변수를 다시 list에 넣어주었다.
N = int(input())
A = list(map(int, input().split()))
#A = [int(x) for x in input().split()]
print(min(A), max(A), end =' ')
math.inf
: 양의 무한대 값 출력
- 사용 방법(형태)
import math #math 패키지 불러오기
positive = math.inf
negative = -math.inf
min()
: 입력된 자료형에서 최소값을 찾는 함수
max()
: 입력된 자료형에서 최대값을 찾는 함수
input; Iterable 객체(반복할 수 있는 객체/list, dict, set 등)
- 사용 방법(형태)
min('대상 객체')
max('대상 객체')- 활용 예시
a = [1, 3, 5, 6, 8] min(a) #output; 1 max(a) #output; 8
저도.map이.조금.헛갈리는데.저랑.같이.map.공부하면.좋겠어요.아가씨.^^