© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 1312 - 소수

2024-04-14
BOJ
실버 V
javascript
원본 문제 보기
수학

문제

BOJ 1312 - 소수

자연수 A, B와 N이 주어질 때, A/B의 소수점 아래 N번째 자리 숫자를 구하라.

입력

첫째 줄에 A, B, N이 주어진다.

출력

A/B의 소수점 아래 N번째 자리 숫자를 출력한다.

예제

입력출력
1 3 13

풀이

나눗셈의 나머지를 반복적으로 갱신하여 N번째 자리를 직접 계산한다.

  1. A % B로 초기 나머지를 구한다
  2. N번 반복하며 나머지에 10을 곱한 뒤 B로 나눈 몫이 해당 자릿수이다
  3. 나머지를 갱신하며 반복한다

핵심 아이디어: 손으로 나눗셈하는 과정을 그대로 시뮬레이션하여 O(N) 시간에 해결한다.

코드

const solution = (input) => {
  const [A, B, N] = input[0].trim().split(" ").map(Number);
 
  let remainder = A % B;
  let result = 0;
 
  for (let i = 0; i < N; i++) {
    remainder *= 10;
    result = Math.floor(remainder / B);
    remainder %= B;
  }
 
  return result;
};
 
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
console.log(solution(input));

복잡도

  • 시간: O(N)
  • 공간: O(1)