Bronze Ⅴ
갑부 최백준 조교는 동전을 최소로 바꾸는데 성공했으나 김재홍 조교가 그 돈을 발견해서 최백준 조교에게 그 돈을 나누자고 따진다. 그 사실이 전 우주로 알려지자 우주에 있던 많은 생명체들이 자신들에게 돈을 분배해 달라고 당장 달려오기 시작했다. 프로토스 중앙 우주 정부의 정책인, ‘모든 지적 생명체는 동등하다’라는 규칙에 입각해서 돈을 똑같이 분배하고자 한다.
한 생명체에게 얼마씩 돈을 줄 수 있는가? 또, 생명체들에게 동일하게 분배한 후 남는 돈은 얼마인가?
입력
첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 10^1000, m과 n은 10진수 정수)
출력
첫째 줄에 생명체 하나에게 돌아가는 돈의 양을 출력한다. 그리고 두 번째 줄에는 1원씩 분배할 수 없는 남는 돈을 출력한다.
C++ (실패)
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
cout << n/m << "\n" << n%m;
return 0;
}
DivisionByZero 런타임 에러가 떴다. 0으로 나눌 수 없어서 발생하는 에러다.
#include <iostream>
using namespace std;
int main() {
int n = 1, m = 1;
cin >> n >> m;
cout << n/m << "\n" << n%m;
return 0;
}
그래서 초기값을 1로 설정하고 했지만 실패했다. 문제를 다시 살펴보니, m과 n의 범위가 10의 1000승이라는 조건이 주어져 있었다. c로는 그 정도 범위의 자료형이 없어서 직접 다 구현해야 한다. 그래서 난이도가 상당히 높을 것으로 예상된다.
Python
n, m = map(int,input().split())
print(n//m)
print(n%m)
파이썬으로는 간단하면서도 쉬운 문제다. 파이썬으로 풀면 난이도가 브론즈라는 게 납득이 가지만 c나, 다른 언어로 풀 때는 실버 이상의 난이도가 될 것 같다.
Review
난이도 브론즈 5라고 했지만, 속았다... 다음에 실력이 된다면 c로 다시 풀어보고 싶다.
유사 문제