백준/언랭 탈출하기
[백준 10869번/Python] 사칙연산
정보통신 고심이
2023. 9. 6. 17:36
문제
두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오.
틀린 코드1
A=int(input())
B=int(input())
C=0
C=A+B
print(C)
C=A-B
print(C)
C=A*B
print(C)
C=A/B
print(C)
C=A%B
print(C)
틀린 이유 : 해당 코드는 숫자 두개를 각각 다른 줄에서 입력 받기에, 입력 형식이 만약
5 3
이런식으로 주어진다면 해당 코드에서 입력받을 수 없다.
A, B = map(int, input().split())
사용자로부터 입력받은 두 숫자를 공백으로 분리하고, 각각을 정수로 변환하여 변수 A와 B에 할당하는 작업을 수행
1. input() : 사용자로부터 입력을 받는 함수
- 입력된 값은 문자열(string) 형태로 반환
2. .split() : 문자열 메서드
- 문자열을 공백 기준으로 분리하여 리스트를 반환합니다.
예) "10 20".split()->['10','20']
3. map(int, ...)
- map 함수 : 첫번째 인자로 주어진 함수를 두번째 인자로 주어진 iterable(예: 리스트, 튜플 등)의 각 요소에 적용
- 이 경우에는 각 문자열 요소를 'int' 함수를 이용하여 정수로 변환
예) map(int, ['10', '20']-> map객체가 반환, 이를 list로 변환하면 [10, 20]이 됨
4. A, B = ....
- Python의 tuple unpacking 기능을 사용하여 리스트의 각 요소를 여러 변수에 할당
예) A, B = [10, 20] -> A는 10, B는 20
틀린 코드2
A, B = map(int, input().split())
print(A+B)
print(A-B)
print(A*B)
print(A/B)
print(A%B)
틀린 이유 : 나누기 연산시 실수형(float)로 출력될 경우를 고려하지 않았음
정답 코드
A, B = map(int, input().split())
print(A+B)
print(A-B)
print(A*B)
print(int(A/B))
print(int(A%B))