이 문제는 백준코드 [문제]->[단계별로 풀어보기]->[입출력과 사칙연산] 있는 문제이다. 프로그래밍 언어를 처음 접하게 되면 반드시 하게 되는 것이 사칙연산 코드이며 이문제를 통해서 단순 수학 사칙연산을 사용해 어떻게 입력받은 값을 출력하는지 연습할 수 있는 좋은 예시이다.
KEYWORD 분석
- 두 자연수 A, B 가 주어짐
- 각 줄마다 덧셈, 뺄쎔, 곱하기, 나누기, 나머지 계산을 출력
입력값을 받아야 하기 때문에 '백준 1000번' 문제에서 사용했던 input() 함수와 split() 함수를 사용한다.
a,b=input().split()
파이썬은 다른 언어와 달리 인간친화적인 언어라서 코딩을 하는 데 있어서 직관적으로 사용하기 편하게 만들어진 언어이다. 사칙연산을 사용할 때도 다른 언어들처럼 math 함수에서 가져오지 않아도 바로 사용할 수 있어 편리하다. 덧셈(+), 뺼셈(-), 곱셈(*), 나눗셈(/), 나머지 계산(%) 그리고 이문제에선 사용되진 않지만 몫을 계산할 때 사용하는 floor division(//) 도 알아두면 좋다.
흔히 하는 실수(warning)
a,b=input().split()
print(int(a)+int(b))
print(int(a)-int(b))
print(int(a)*int(b))
print(int(a)/int(b))
print(int(a)%int(b))
파이썬을 이용해 코딩을 시작한 지 얼마 안 된 초보자들은 이 문제를 보고 자신 있게 위와 같은 코드를 제출했던 사람이 있을 것이다. 하지만 저렇게 제출하면 오답으로 처리된다. 그 이유는 무엇일까? 바로 나눗셈에서 발생한다. 문제를 보면 A/B(몫)을 출력하라고 하였고 실제 예제 출력 값들을 봐도 정수형으로 출력되어있다. 만약 5/3을 하게 되면 1.6666... 이런 식으로 소수점이 나오게 되므로 나눗셈 값에 한 번 더 int() 함수를 사용하여 정수 값을 출력해야 한다. 사실 몫을 구하는 함수는 위에서 소개한 floor division(//)을 쓰면 더 쉽게 나오지만 문제에서 제시된 방식을 사용해야 하므로 division(/)을 사용했다.
Solution
#두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력
a,b=input().split()
print(int(a)+int(b))
print(int(a)-int(b))
print(int(a)*int(b))
print(int(int(a)/int(b)))
print(int(a)%int(b))
위의 흔히 하는 실수를 반영하여 solution에 해당하는 정답 코드가 완성되었다.
'Daily 코딩-Python' 카테고리의 다른 글
[파이썬] 백준 10171 (고양이)- print() 출력함수 활용 (0) | 2022.09.11 |
---|---|
[파이썬] 백준 2884번 (알람시계) (0) | 2022.09.11 |
[파이썬] 백준 2588 번 (곱셈) (0) | 2022.09.11 |
[파이썬]백준 10926번 (??!) (0) | 2022.09.09 |
[파이썬]백준1000번 (A+B) (0) | 2022.09.04 |
댓글