우당탕탕 파이썬 with 하루하나 알고리즘

백준 10998 파이썬 - 곱셈 (계산, split 함수, 공백 구분자, map 함수)

hyxndy 2022. 3. 10. 16:27

백준 10998번 - A × B

Q. 두 정수 A와 B를 입력받은 다음, A × B를 출력하는 프로그램을 작성하시오.

지난 시간에는 A - B에 대한 문제였는데 곱셈도 뺄셈과 거의 비슷하다.

그래서 이번 기록에는 지난 문제와 다르게 푸는 방법에 대해 이야기하고자 한다.

먼저 지난번에 했던 것을 복습해 보자면,

3 2를 두 정수 A, B로 받기 위해서는

"3 2"를 input()으로 받은 후 split() 함수를 통해 두 숫자 사이의 공백을 구분자로 받아주어 공백을 없애주고 문자열을 만들어줘야 한다고 했었다.

즉, A, B = input().split()으로 코딩을 진행하였다.

그 후 이 두 값은 문자로 받아들여지고 있기 때문에 A, B를 숫자로 (문제에서 말한 듯이 정수로) 받아들이기 위해

int 함수를 사용했었다.

x = int(A)

y = int(B)

처럼 말이다.

이 방식으로 진행하면 코드가 총 3줄이 된다.

이 세 줄의 코드를 단 한 줄로 만들어주는 함수가 존재하는데 바로 map 함수이다.

이번엔 그 함수를 이용하여 문제를 풀어보겠다.

map(함수, 반복 가능한 개체(리스트, 튜플 등))

map 함수는 리스트의 요소들을 지정한 함수에 각각 적용하여 여러 개의 데이터를 한 번에 다른 형태로 변환하여 주는 함수이다.

우리의 예제에서는 A와 B 각각에 int 함수를 적용해 줘야 했다.

즉, 이 말은 int 함수를 반복하여 적용해야 한다는 의미이다. 그러므로 map 함수를 적용해 볼 수 있다.

한번 적용해 보자.

우리가 반복해서 사용해야 할 함수는 int 함수이므로

함수 자리에 int를 넣는다.

map(int, 반복 가능한 개체(리스트, 튜플 등))

이 int 함수를 A와 B에 적용을 시켜줘야 하므로 반복 가능한 개체에 A와 B를 넣는다.

A, B = input().split()이므로

map(int, input().split())이 되고, 이 각각의 값을 A와 B에 넣어주면 된다.

최종 모형은

A, B = map(int, input().split())이 된다.

그럼 한번 예제 입력 값인 3 2를 넣어볼까?

타입도 정수형으로 잘 출력됨을 볼 수 있다.

이제 print 함수를 통해 곱셈을 출력시킨다.

곱셈을 나타내는 수식 기호는 *이므로

print(A*B)를 출력해 주면

값이 잘 나오는 것을 볼 수 있다.

지금은 A와 B, 두 가지 인자만 적용해 주면 돼서 굳이 map 함수를 사용하지 않아도 간단하게 결과가 나오지만,

데이터양이 많아 10개, 20개, 100개, ... 등의 자료들에 같은 함수를 적용해 줄 때 매우 유용하게 쓰이는 함수이니 꼭 기억해두면 좋을 것 같다.