엄청난 부자2
백준 - 엄청난 부자2
문제 설명
문제
갑부 최백준 조교는 동전을 최소로 바꾸는데 성공했으나 김재홍 조교가 그 돈을 발견해서 최백준 조교에게 그 돈을 나누자고 따진다.
그 사실이 전 우주로 알려지자 우주에 있던 많은 생명체들이 자신들에게 돈을 분배해 달라고 당장 달려오기 시작했다.
프로토스 중앙 우주 정부의 정책인, ‘모든 지적 생명체는 동등하다’라는 규칙에 입각해서 돈을 똑같이 분배하고자 한다.
한 생명체에게 얼마씩 돈을 줄 수 있는가?
또, 생명체들에게 동일하게 분배한 후 남는 돈은 얼마인가?
입력
첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 10^1000, m과 n은 10진수 정수)
출력
첫째 줄에 생명체 하나에게 돌아가는 돈의 양을 출력한다. 그리고 두 번째 줄에는 1원씩 분배할 수 없는 남는 돈을 출력한다.
예제 입력
1000 100
예제 출력
10
0
틀린 제출
나는 지난번에 배운 fs를 이용해서 입력값을 똑같이 받아왔다
그리고 각 변수에 받은 값을 넣어주고, 몫/나머지 연산을 해서 콘솔로 결과를 찍었다
const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString().split(' ')
const money = Number(input[0])
const people = Number(input[1])
var count = money / people
var remain = money % people
console.log(count)
console.log(remain)
당연하게도 맞았을 줄 알았지만 틀렸다고 나왔다
한참을 고민했지만 뭐가 틀린지 모르겠어서 결국 구글을 뒤져봤다
맞는 제출
나는 Number를 사용해서 숫자로 변환시켜주었는데 이부분이 틀린것이었다
입력값을 보면 10의 1000승인데 정확히는 모르지만 Number가 수용할 수 있는 범위를 넘었다고 했다
그래서 BigInt라는 것을 이용해서 변환해야한다고 했다
BigInt는 엄청나게 큰 int까지 받을수 있다고 한다
const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString().split(" ")
var money = BigInt(input[0])
var people = BigInt(input[1])
var count = (money / people).toString()
var remain = (money % people).toString()
console.log(count)
console.log(remain)
한가지 의문이 드는건 count, remain에 toString()를 다시 해준다
저걸 안하면 틀렸다고 나왔다
아직도 이건 왜 하는건지 모르겠다
Author And Source
이 문제에 관하여(엄청난 부자2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@qnrl3442/백준-엄청난-부자2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)