[백준][파이썬] 1001번: A-B
https://www.acmicpc.net/problem/1001
1001번: A-B
두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제
두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
첫째 줄에 A-B를 출력한다.
예제 입력 1
3 2ㅤ
예제 출력 1
1
예제 입력 2
2 7
예제 출력 2
-5
예제 입력 3
4 4
예제 출력 3
0
풀이
1000번과 다른 점은 덧셈이 아닌 뺄셈 연산을 수행한다는 것이다.
1000번 문제와 마찬가지로 map 함수를 이용해 입력받은 값을 형 변환해 변수에 저장하면 깔끔한 풀이가 가능하다.
Python3 정답 코드
a, b = map(int, input().split())
print(a - b)
추가 정답 코드 1
print(eval('-'.join(input().split()))
eval 함수와 join 함수를 활용한 코드
(eval 함수는 보안 취약점이 존재하여 자주 쓰이지 않는 편이다.)
추가 정답 코드 2
print(eval(input().replace(' ','-')))
추가 정답 코드 1번과 유사하지만, 공백을 기준으로 문자열을 나누고(split) 문자열 사이에 -를 넣어 이어 붙이는(join) 과정을 띄어쓰기를 -로 치환하는 replace 함수로 대체한 코드
추가 정답 코드 3
print(eval('+0-'.join(input())))
eval과 join을 활용한 다른 코드
이 코드에서 eval 함수가 실제로 계산하는 문자열은 '3+0- +0-2'의 형태이다.
만일 '+0-' 대신 '-'를 사용한다면 '3- -2'가 계산되어 두 수의 차가 아닌 합이 출력될 것이다.
1000번 문제의 추가 정답 코드 2와 마찬가지로, 이 문제에서처럼 입력받는 두 정수가 모두 한 자릿수로 범위가 정해져 있는 경우에만 사용할 수 있는 코드이다. 만일 범위에서 벗어난 입력이 주어진다면(예: 156 93) 그냥 추가 정답 코드 1번을 사용하면 된다.
'백준(BOJ) > 파이썬' 카테고리의 다른 글
[백준][파이썬] 10869번: 사칙연산 (추가 예제/풀이/코드) (0) | 2022.08.19 |
---|---|
[백준][파이썬] 1008번: A/B (추가 예제/풀이/코드) (0) | 2022.08.19 |
[백준][파이썬] 10998번: A×B (추가 예제/풀이/코드) (0) | 2022.08.18 |
[백준][파이썬] 1000번: A+B (추가 예제/풀이/코드) (0) | 2022.08.17 |
[백준][파이썬] 2557번: Hello World (예제/풀이/코드) (0) | 2022.08.17 |
댓글