https://www.acmicpc.net/problem/1000
# 문제상황 1
파이썬은 C와 달리 띄어쓰기를 기준으로 입력을 나눠 받지 않습니다.
다시 말하자면 입력으로 다음과 같은 두 숫자가 주어졌을때,
입력1.
1
2
입력2.
1 2
C는 입력1과 입력2를 같은 입력이라고 받아들이지만 파이썬은 그렇지 않습니다.
입력1의 경우에는 '1'과 '2'라는 2개의 입력을 인식하고, 입력2의 경우에는 '1 2'라는 하나의 입력을 인식하게 되는 것입니다.
# 해결 1
split이라는 함수를 활용합시다. split은 문자열을 '특정 문자'를 기준으로 나눈 뒤 리스트로 반환하는 함수입니다.
기준이 될 '특정 문자'는 괄호 안에 써넣어 줌으로써 지정해줄 수 있습니다.
괄호 안을 비워두면 모든 '공백 문자'를 기준으로 문자열을 나누게 됩니다.
예를 들어, 다음과 같은 문자열이 있다고 할 때,
a = "abc : def : ghi"
a.split(':') 의 결과는 ['abc ', ' def ', ' ghi'] ,
a.split()의 결과는 ['abc', ':', 'def', ':', 'ghi'] 가 되는 것입니다.
# 문제상황 2
자, 이제 split 함수를 사용해서 아래와 같은 코드를 완성했습니다.
A, B = input().split()
아래와 같은 입력이 들어오면 각각 A에는 문자 '1'이, B에는 문자 '2'가 저장될 것입니다.
1 2
이제 A와 B에 들어있는 문자 '1'과 '2'를 int 함수를 써서 각각 숫자 1과 2로 바꿔주어야합니다.
A = int(A)
B = int(B)
물론 위와 같이 써도 되지만, 다소 코드가 길고 반복되는 느낌이 있습니다.
이 코드를 더 간단하게 줄일 수는 없을까요?
# 해결 2
map 함수를 활용합시다. map 함수의 기본 골조는 아래와 같습니다.
map(function, iterable)
첫 번째 매개변수에는 함수가 오고, 두 번째 매개변수에는 반복 가능한 자료형(리스트, 튜플 등)이 옵니다.
map 함수는 두 번째 매개변수로 받은 반복 가능한 자료형을 첫 번째 매개변수로 받은 함수에 하나씩 집어 넣어 반복적으로 수행시키는 역할을 합니다.
이 함수를 잘 활용한다면 문제상황 1에서의 번거로운 코드를 보다 간단하게 줄일 수 있을 것입니다.
# 답안
A, B = map(int , input().split())
print(int(A) + int(B))
'Algorithm > BaekJoon' 카테고리의 다른 글
(파이썬) 백준 10871번 "X보다 작은 수" (0) | 2022.04.19 |
---|---|
(파이썬) 백준 11021번 "A + B - 7" (0) | 2022.04.18 |
(파이썬) 백준 2742번 "기찍 N" (0) | 2022.04.17 |
(파이썬) 백준 15552번 "빠른 A + B" (0) | 2022.04.17 |
(파이썬) 백준 10950번 "A+B - 3" (0) | 2022.04.17 |