array = list(map(int, input().split()))
파이썬으로 코딩테스트를 준비하면서 가장 어려웠던 점은 C와의 자잘한 문법의 차이였습니다.
특히 입력이 헷갈렸는데, 모두들 당연하게 위의 방법을 사용하고 있었습니다.
외우기보다는 이해하는 것이 더 손에 익을 것 같아 코드를 뜯어보기로 했습니다.
array = list(map(int, input().split()))
위의 한 줄 중 어느 정도까지 이해가 되나요? 저는 map부터 막혔는데 이제는 설명할 수 있습니다. 같이 공부해봅시다!
input()은 문자열을 받아오는 메서드입니다.
1 2 3 4 5
위와 같이 입력이 들어왔다면 아래의 코드로 받아올 수 있습니다.
in = input()
print(in)

하지만 input은 한 줄씩 읽어오기 때문에 "1 2 3 4 5" 라는 하나의 문자열을 반환하게 됩니다.
이때 split()메서드를 이용해 문자열을 공백을 기준으로 나누어줄 수 있습니다.
in = input().split()
print(in)

위처럼 리스트 형태로 반환된 것을 확인 할 수 있습니다.
또 하나 눈에 띄는 것은 리스트 안의 각각의 요소가 문자 형태라는 점입니다.
문자를 숫자로 변환해주기 위해서 map() 메서드를 사용할 수 있습니다.
map은 리스트의 요소를 지정된 함수로 처리해주는 메서드입니다.
다시 말해서 오른쪽의 입력된 리스트의 각각의 요소를 함수에 통과시켜서 그 결과로 다시 새로운 리스트를 만듭니다.

출처:https://dojang.io/mod/page/view.php?id=2286
왜 list를 이용하는지 궁금해졌기 때문에 map함수에 대해 알아보았습니다.
아래는 map의 결과를 찍어본 결과입니다.
a = map(int, input().split())
print(a)
print(type(a))

map()함수의 반환값은 map 객체입니다.
따라서 이를 리스트로 만들어주기 위해서 list()라는 메서드를 다시 이용하는 것입니다.
처음 코드로 돌아가보겠습니다.
array = list(map(int, input().split()))
이 문장을 이제 완벽하게 이해할 수 있습니다.
input으로 문자열을 받아서 split으로 공백 기준으로 나눠 리스트를 만들고 map을 이용해 요소 각각을 정수로 바꾼 다음 다시 리스트로 만드는 과정입니다.
끝.