2023. 2. 5. 11:11ㆍ백준/파이썬
두 정수 A와 B를 한 줄 안에서 사용자로부터 입력받아야 합니다.
입력받는다?
input()
바로 떠오릅니다.
이런 식으로 한 칸 뛰어서 입력 받아야 한다고 예제에 나와있는데,
이 말인즉슨 입력값을 분할해서 받아야 한다는 거고
split()
써줍니다.
A, B = input().split()
print(A+B)
1 2
12
A+B를 했을 때 12가 나오는데, 이 말인즉슨
A와 B를 정수가 아니라 문자열로 보기 때문입니다.
이처럼 split()은 기본적으로 문자열을 분할해주는 함수 입니다.
split() 쓰기 위해서는 int형 변환을 해줘야 할 것 같습니다.
A, B = int(input().split())
print(A+B)
1 2
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'list'
타입 에러가 발생합니다.
int로 형 변환 할 input().split()이 string이 아니라 list이기 때문입니다.
print(input().split())
1 2
['1', '2']
이처럼 split() 메서드는 문자열을 구분자 단위로 분할하여 리스트를 생성하는 함수입니다.
A, B = input().split()
A = int(A)
B = int(B)
print(A+B)
1 2
3
이렇게 일일이 리스트 안에 들어간 변수들마다 int 형 변환을 해준다면
원하는 값이 출력됩니다.
그렇지만, 비효율적이고 번거롭죠.
더 좋은 방법이 있을 것 같은데요.
map()
map()을 통해서 여러개의 값을 입력받을 수 있습니다.
map()은 리스트의 각각의 요소마다 지정한 함수로 처리해주는 함수입니다.
위처럼
사용자로부터 입력을 받을 때, 입력을 받아야 할 변수가 많고, 변수마다 타입을 변환해야 하는
번거로운 상황이 있을 때 map() 이 유용하게 쓰입니다.
3.
A, B = map(int, input().split())
print(A+B)
1 2
3
이처럼 사용해줍니다.
input().split()으로 ['1', '2']라는 리스트가 출력되는 것을 위에서 확인했습니다.
map()은 이 리스트의 요소들을 각각 int 형 변환해주는 역할을 합니다.
- split(" ")과 split() 사용 비교
문제는 공백이 하나인 입력값이니까 => split(" ") 이렇게 써도 되고,
A, B = map(int, input().split(" "))
print(A+B)
- 공백 하나인 입력값을 받을 때 -> 잘 작동
1 2
3
- 공백이 여러개인 값을 입력받을 때 -> 에러
공백 자체를 단위로 해서 분할하고 싶은 거면 => split() 그대로 써줍니다.
A, B = map(int, input().split())
print(A+B)
- 공백이 여러개인 값을 입력받을 때 -> 잘 작동
1 2
3
정답:
A, B = map(int, input().split())
print(A+B)
단계적으로
1.
input() 입력받겠다!
2.
split() 입력값을 분할해서 리스트로 출력하겠다!
3.
input().split() 을 통해 문자열 원소들을 가진 리스트가 출력된다!
4.
그러나 나는 지금 A, B를 정수로 입력받아 A+B 계산을 하고싶다.
int형 변환을 해줘야겠다!
int(input().split())을 해준다!
=>에러가 난다!
왜? int형으로 직접적으로 변환 해줄 때는 list를 못 받아서..
5.
list 속에 문자열로 된 원소들을 각각 int형으로 변환해주고 싶다!!!!!
map() 이용해줄 거다.
map(int, input().split())
성공!
'백준 > 파이썬' 카테고리의 다른 글
[ 백준 문제 9498 / 파이썬 ] 시험 성적 (0) | 2023.02.05 |
---|---|
[ 백준 문제 1330 / 파이썬 ] 두 수 비교하기 (0) | 2023.02.05 |
[ 백준 문제 2588 / 파이썬 ] 곱셈 (0) | 2023.02.05 |
[ 백준 문제 3003 / 파이썬 ] 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2023.02.05 |
[ 백준 문제 10926 / 파이썬 ] ??! (0) | 2023.02.05 |