백준 알고리즘 사이트 10998번 문제를 파이썬으로 코딩해 보도록 하겠습니다.
문제는 아래와 같습니다.
https://www.acmicpc.net/problem/10998
10998번: A×B
두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
정답
#1
A, B = input().split()
A = int(A)
B = int(B)
print(A*B)
#2
A,B = map(int.input().split())
print(A*B)
map 함수를 함게 사용 하면 불필요한 부분을 제거 할수있습니다.
문제풀이
A, B = input().split() # 입력되는 문자를 input()함수로 입력받고 split()함수로 나누어 A,B 변수에 저장
input() 함수 : 사용자로부터 문자열을 입력받을 때 사용하게 된다.
- 변수 = input() 이렇게 작성하면 입력받은 문자를 변수에 선언할 수 있게 된다.
- 문자열 형태로 입력받으므로, 숫자 1과 2를 입력받는 게 아니라 '1 2'라는 숫자 두 개 사이에 공백이 있는 하나의 문자열을 입력받는다.
split() 함수 : 입력받는 문자를 나눌 때 사용하는 함수이다.
- 문제를 보면 숫자 두 개를 한 줄에 입력받는데 두 개의 숫자 사이에는 공백으로 구분되어 있다. 이런 경우 공백을 기준으로 숫자를 나누면 된다.
- 문자열 뒤에 점을 붙이고 split( )을 써주면 된다.
- input( ). split( )은 입력받는 문자가 아직 정해지지 않았으나 어떤 문자이건 공백을 기준으로 나누겠다는 의미이다.
- 괄호 안에 아무것도 넣지 않으면 공백(띄어쓰기, 탭 등)을 기준으로 문자열을 나눈다.
- A, B = input( ). split( ) 문장에서 = 왼쪽에 A, B 두 개로 구분한 것은 튜플(tuple) 자료형의 성질을 이용한 것이다.
- = 우측에서 입력받은 문자를 공백을 기준으로 나누게 되면 두 개의 문자로 나누어지게 된다. 그 두 개의 문자를 각각 A, B 변수에 저장하겠다는 의미이다.
print(int(A)*int(B)) # int() 함수로 A와 B를 정수로 변환 하고 두수의 값을 출력
int() 함수 : 문자형을 숫자형으로 변형할 수 있다. int는 숫자 중에서도 정수를 의미한다.
- 문제에서 요구하는 것은 두 개의 정수를 + 연산자로 더하는 것이다. 문자열에서도 + 연산자를 사용할 수 있으나 그러면 '1'과 '2'를 더해서 '12'가 된다.
- int() 를 사용하여 숫자로 변환하면 출력했을 때 두 수를 더한 값이 출력된다.
map() 함수 : 파이썬의 내장 함수로 여러 개의 데이터를 한번에 다른 형태로 변환할 때 사용한다.
- 여러 개의 데이터를 담고 있는 리스트(List)나 튜플(tuple)을 대당으로 주로 사용하는 함수입니다.
- map() 함수의 기본문법은 map(변환함수, 순회 가능한 데이터)
- map() 함수는 첫번째 인자로 넘어온 변환 함수를 두번째 인자로 넘어온 모든 테이터를 상대로 적용해 줍니다.
'[백준] 파이썬 - 단계별로 풀어보기' 카테고리의 다른 글
[백준] 파이썬 10869번(사칙연산) - 단계별로 풀어보기 (0) | 2023.07.07 |
---|---|
[백준] 파이썬 1008번(A/B) - 단계별로 풀어보기 (0) | 2023.07.07 |
[백준] 파이썬 1001번(A-B) - 단계별로 풀어보기 (0) | 2023.07.07 |
[백준] 파이썬 1000번(A+B) - 단계별로 풀어보기 (0) | 2023.07.05 |
[백준] 파이썬 2557번 (Hello World!) - 단계별로 풀어보기 (0) | 2023.07.05 |