인프런 커뮤니티 질문&답변
강의에서 작성한 코드를 이렇게 바꿔봤는데 왜 에러가 뜰까요? ㅠㅠ
작성
·
961
1
```
n = int(input())
res = 0
for i in range(n):
tmp = list(map(int, input().split()))
tmp.sort()
a, b, c = map(tmp)
if a == b and b == c: # 눈이 모두 같다면
money = 10000 + (a*1000)
elif a==b or a == c:
money = 10000 + (a*100)
elif b == c:
money = 10000 + (b*100)
else:
money = c * 100
if money > res:
res = money
print(res)
```
a, b, c = map(tmp)
TypeError: map() must have at least two arguments.
왜 에러가 발생할까요..? 같은 코드가 아닌가요? ㅠㅠ
답변 1
1
안녕하세요!
Python의 Map 함수는 최소 두 개의 인자(함수, 이터러블 객체)가 필요합니다.
이터러블 객체란 리스트, 튜플과 같이 객체 내부 멤버의 요소에
하나 하나 접근할 수 있는 형태라고 생각하시면 됩니다.
(파이썬 문법에 익숙해지시면 Python iterable, iterator 등의 키워드로
검색해보시는걸 추천드립니다! 이터레이터 개념은 파이썬 뿐 아니라
자바, 자바스크립트, 스위프트 등 많은 현대 언어에서 제공합니다. )
Map 함수의 첫 번째 인자에는
다음에 오는 인자(이터러블 객체)의 요소 하나하나에
적용해줄 함수를 넘겨줍니다.
for 문 안의 첫째 줄 map 함수에서는 값을 정수형으로 변환해주는
'int'를 첫 번째 인자로 사용했습니다.
( ['1', '2', '3'] -> [1, 2, 3] 과 같이 문자를 숫자로 바꿔주는 기능을 합니다.)





