input()은 받은 입력을 "문자열"로 반환합니다. 하나의 문자열을 a, b, c 세 개의 변수에 집어넣으려고 하다 보니 작동이 제대로 안 되는 것이죠.
아마 질문자님께선 한 자리 숫자 2개만을 입력해보신 것 같은데, 그런 경우에는 문자열의 길이가 3이기에 a, b, c에 숫자, 띄어쓰기, 숫자가 제대로 입력됩니다.
하지만 둘 중 하나가 10 이상이 되면 코드가 질문자님이 의도하신 대로 작동하지 않습니다. 예를 들어 10 4 를 입력한다면 c에는 공백이 들어갈 것이고, 따라서 int(c)에서 ValueError가 발생합니다.
---------------
한 줄에 하나의 정수가 들어올 때에는 a = int(input())
한 줄에 여러 정수가 들어오되, 그 개수가 정해져 있을 때에는 a, b = map(int, input().split())
한 줄에 여러 정수가 들어오되, 그 개수를 모를 때에는 a = list(map(int, input().split())) 으로 받고 a 리스트를 인덱싱하기
int가 int(a)와 같이 사용된다는 점에서 int는 함수라는 점, 그리고 map이 무슨 기능을 하는지 아신다면 위 코드가 어떻게 작동하는지 이해할 수 있습니다. 만약 안 된다면 일단 메모해두고 map을 배우신 다음에 생각해보세요.
이 문제에선 두 번째 케이스에 해당하니 저 코드를 사용하면 됩니다.
codren 2년 전 1
VScode 에서는 결과가 잘만 나오는데 왜 컴파일 에러가 나는 건지 잘 모르겠습니다.
혹시 아시는 분 있나요??