백준 단계별로 풀어보기
1. 입출력과 사칙연산
10869. 사칙연산
순서대로 단계별을 풀어 오셨으면 어려울 것은 없지만,
2가지 정도 주의 깊게 볼만한(틀릴만한) 부분이 있는 것 같네요.
1. A/B (몫)
- 이게 뭐 어쨌다고? 싶을 수 있지만, c++ 과 파이썬에서 미묘하게 다른 부분입니다.
- 문제에서는 '몫' 이라는 자연수를 요구한다는 사실을 유의해서 풀어보세요.
- 풀어보시고, 모르겠으면 아래의 언어별 풀이를 봐주세요.
2. % ?
새로 등장한 기호가 있습니다. '%' 인데요.
- 나머지 연산이라는 의미로, '모듈러' 연산 혹은 기호 라고도 합니다.
- a % b = a를 b로 나눈 나머지를 구하라.
- +, -, *, / 와 같이 %도 그대로 써 주시면 됩니다. 이제 C++의 산술 연산자는 모두 배웠네요.
c++과 파이썬의 연산자에 대해 더 알고 싶은 분들은 아래의 링크를 참고 해 주세요. (추가 예정)
C++
c++의 경우 int형 자연수를 / 로 나눌 경우 int형으로 결과가 반환됩니다.
문제에서 자연수만 input으로 들어온다고 했으니, 그대로 int로 받은 후 사용하시면 됩니다.
최종 코드
#include <iostream>
int main(){
int a, b;
std::cin >> a >> b;
std::cout << a+b << "\n";
std::cout << a-b << "\n";
std::cout << a*b << "\n";
std::cout << a/b << "\n";
std::cout << a%b << "\n";
}
Python
파이썬의 경우, c++처럼 냅다 /를 써버리면 안 됩니다.
파이썬에서는 '나누기' 연산과 '몫' 연산이 분리되어 있습니다.
' / ' 연산자
- 나누기 연산입니다.
- int를 사용한다고 해도 실수형으로 결과가 반환됩니다.
- 만약 이 기호를 사용했다면, 결과값을 int로 형 변환하는 과정이 필요합니다.
' // ' 연산자
- c++에는 존재하지 않는 기호임을 유의하세요.
- '몫' 을 구하는 연산으로 항상 자연수가 반환됩니다. 이 문제에서 원하는 연산자는 아마도 이 연산자겠죠.
최종 코드
a, b = map(int,input().split())
print(a+b)
print(a-b)
print(a*b)
print(a//b)
print(a%b)
아래와 같이 print를 한 번만 호출하면 더 좋겠죠.
a, b = map(int,input().split())
print(a+b,a-b,a*b,a//b,a%b,sep='\n')
'백준 단계별' 카테고리의 다른 글
[python/c++] 백준 단계별 1. 입출력과 사칙연산 : 1008. A/B (0) | 2021.06.05 |
---|---|
[python/c++] 백준 단계별 1. 입출력과 사칙연산 : 10998. AxB (0) | 2021.05.20 |
[python/c++] 백준 단계별 1. 입출력과 사칙연산 : 1001. A-B (0) | 2021.05.20 |
[python/c++] 백준 단계별 1. 입출력과 사칙연산 : 1000. A+B (0) | 2021.05.20 |
[python/c++] 백준 단계별 1. 입출력과 사칙연산 : 10172. 개 (0) | 2021.05.01 |