< 과제 >
< 문제 >
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
< 내 코드 >
N = int(input())
nums = input().split(" ")
int_list = []
for i in range(N):
int_list.append(int(nums[i]))
print(min(int_list), max(int_list))
< 피드백 >
nums = list(map(int, input().split(' ')))
map 함수 반환 값의 형변환에 대해 확인하기 위해 아래 코드를 실행해보았다. (입력은 1 2 3)
print(nums)
print(type(nums))
print(nums[0])
print(type(nums[0]))
이렇게 map 함수를 쓰면 입력값의 데이터 타입을 각각 바꿀 수 있고, map 형태 또한 list로 바꿀 수 있다.
※ 참고로 input().split(" ")
하면 반환되는 타입은 list임.
그럼 이 개념을 사용하여 코드를 바꿔보았다.
N = int(input())
nums = list(map(int, input().split(' ')))
print(min(nums), max(nums))
처음에 작성했던 코드에 비해 엄청나게 짧아졌다!(그런데 속도나 메모리 부분에서는 크게 차이가 없는듯 하다. / 아래가 처음 작성한 코드 결과이고 위에가 변경한 코드 결과이다.)