강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

australialove19님의 프로필 이미지
australialove19

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

9. 주사위 게임

강의에서 작성한 코드를 이렇게 바꿔봤는데 왜 에러가 뜰까요? ㅠㅠ

작성

·

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] 과 같이 문자를 숫자로 바꿔주는 기능을 합니다.)

australialove19님의 프로필 이미지
australialove19

작성한 질문수

질문하기