본문 바로가기
Daily 코딩-Python

[파이썬]백준 10869번(사칙연산)

by $#spacecoding#$ 2022. 9. 7.

이 문제는 백준코드 [문제]->[단계별로 풀어보기]->[입출력과 사칙연산] 있는 문제이다. 프로그래밍 언어를 처음 접하게 되면 반드시 하게 되는 것이 사칙연산 코드이며 이문제를 통해서 단순 수학 사칙연산을 사용해 어떻게 입력받은 값을 출력하는지 연습할 수 있는 좋은 예시이다. 

백준 10869번 (사칙연산)-Python3, 파이썬
백준 10869번(사칙연산)

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에 해당하는 정답 코드가 완성되었다. 

 




댓글