1차원 배열-3단계_ 최소, 최대
단계 | 제목 | 설명 | |
---|---|---|---|
4 | 1차원 배열 | 1차원 배열 | |
소단계 | 문제번호 | 제목 | |
3 | 10818 | 최소, 최대 | |
최솟값과 최댓값을 찾는 문제 |
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
내 제출
N = int(input())
N_list = list(map(int, input().split()))
min_N = N_list[0]
max_N = N_list[0]
for i in range(len(N_list)):
if min_N > N_list[i]:
min_N = N_list[i]
if max_N < N_list[i]:
max_N = N_list[i]
print(min_N,max_N)
N = int(input())
N_list = list(map(int, input().split()))
print(min(N_list), max(N_list))
결과
정답
수정 제출
결과
정답
오답 이유
사용된 코드 이론
1. max( )
max(iterable) 괄호( ) 안에 리스트, 문자 열등 반복 가능한 자료형을 넣으면 가장 큰 값을 반환해준다.
>>> max(-5, 0, 3)
3
>>> max(-5, 3, 0, 3, -5)
3
2. min( )
min(iterable) 괄호( ) 안에 리스트, 문자 열등 반복 가능한 자료형을 넣으면 가장 작은 값을 반환해준다.
>>> min(-5, 0, 3)
-5
>>> min(-5, 3, 0, 3, -5)
-5
3. Parameter
min, max 모두 key, default 매개변수를 갖고 있다.
key
함수를 값으로 넣는다. lambda를 이용할 수 있다. key= function을 기준으로 최대, 최솟값을 찾는다.
절댓값을 찾는 함수 abs를 key값으로 넣을 때
>>> min(-5, 3, 0, 3, -5, key=abs)
0
>>> nums = [-5, 3, 0, 3, -5]
>>> max(nums, key=abs)
-5
나머지를 구하는 lambda 식을 key 값으로 넣을 때
>>> nums = [-5, 3, 0, 3, -5]
>>> min(nums, key= lambda x : x%3 )
3
>>> max(-5, 3, 0, 3, -5, key= lambda x : x%3 )
-5
default
iterable 객체가 비어있는 경우 반환할 값을 지정한다.
default를 지정하지 않고 iterable이 빈 경우는 ValueError가 발생한다.
>>> bin = []
>>> max(bin, default=10)
10
>>> max(bin)
ValueError: max() arg is an empty sequence
4. dictionary 자료형
max, min
max 함수로 예를 든다. min 함수 사용방법도 동일함.
dict자료형을 iterable로 넣으면 key값을 기준으로 최대/최소 값을 찾는다.
>>> max({1:-5, 5:3, 10:0})
10
>>> dict_nums = {1:-5, 5:3, 10:0}
>>> max(dict_nums.keys())
10
value값을 기준으로 최대/최소 값을 찾는 경우
‘dict변수. values( )’ 형태로 사용한다.
>>> dict_nums = {1:-5, 5:3, 10:0}
>>> max(dict_nums.values())
3
value값이 최대/최소인 key값을 출력하려는 경우 max/min 함수의 매개변수 key=function을 이용한다.
lamda 식을 function으로 넣어 사용한 예시
>>> dict_nums = {1:-5, 5:3, 10:0}
>>> max(dict_nums, key= lambda x : dict_nums[x]))
dict변수[key값] 형태로 호출할 때, 대괄호[ ] 안의 key값에 해당하는 value값이 출력되는 점을 이용한 lamda 식이다.
참고문헌
파이썬 최소, 최대값을 찾는 함수min,max / dict min, max 함수 설명과 매개변수 key, default (Python)