자기계발
백준
10818 · 최소, 최대

백준 10818번 최소, 최대

문제

정수 N개가 주어질 때 최솟값과 최댓값을 공백으로 구분해 출력한다. N은 1 이상 1,000,000 이하이고, 각 정수는 -1,000,000 이상 1,000,000 이하다.

풀이

첫 줄의 n을 받고, 둘째 줄은 map(int, ...)으로 정수로 바꾼 뒤 list로 묶어 min과 max에 넘긴다.

n = int( input() )
number = list( map( int, input().split() ) )
 
print( min(number), max(number) )

처음에는 list를 붙이지 않았고, 반복문으로 하나씩 비교해야 하나도 고민했다. 하지만 min, max는 리스트를 바로 받으므로 반복문이 필요 없었다. 아직 list, int, str의 차이에 대한 감이 부족하다고 느꼈다.

짚고 갈 점

list 없이 number를 출력하면 <map object at 0x...>처럼 객체의 메모리 주소가 나온다. 원글에는 이를 16진수 출력으로 적었는데, 값이 아니라 map 객체의 주소다. map은 값을 바로 만들지 않고 순회할 때 계산하는 객체라서, 리스트로 바꿔야 값을 다룰 수 있다.

출처