가치투자자

[BOJ] 1075번 : 나누기 본문

Problem Solving/BOJ

[BOJ] 1075번 : 나누기

미주민 2023. 4. 25. 04:17
728x90
반응형

백준 1075번 : 나누기

🔗 문제 링크

https://www.acmicpc.net/problem/1075

 

1075번: 나누기

첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다.

www.acmicpc.net

 


💬 문제

 브루트포스(완전 탐색, Brute Force) 에 대한 이해가 있다면, 충분히 풀 수 있는 문제다.

 

  1. 정수 N과 F가 주어진다.

  2. 정수 N의 끝 두 자리를 바꿔서 F로 나눴을 때, 나눠 떨어지는 수 중 가장 작은 수의 끝 두 자리를 출력해준다.

 


💡 입력값 받아오기

JavaScript로 풀 경우, 입력값(input)을 어떻게 받아와야 할 지가 중요하다.

이 문제에서는 1번째 줄에 정수 N, 2번째 줄에 정수 F가 주어진다. 각각을 줄바꿈을 기준으로 잘라주면 된다.

 

 

입력값을 받아오는 것과 관련해 더 자세한 내용은 아래 링크를 참고 바란다.

https://valueengine.tistory.com/2

 

[BOJ] JS로 백준(BOJ) 푸는 법 및 VSCode 환경 세팅

JS로 백준 푸는 법 1. Node.js fs모듈 사용법 백준에서 JavaScript로 문제를 풀기 위해선 Node.js를 사용해야 하며, 이때 readline 모듈이나 fs 모듈로 입력값(input)을 받아와야 한다. 이 중 속도나 코드의 길

valueengine.tistory.com

 

728x90

 


🔑 풀이

  • N의 끝 두자리를 바꾸고 F로 나눴을 때 가장 작은 수를 찾아줘야 한다.

    - 그렇기에 끝 두 자리가 00부터 시작할 수 있도록 100으로 나눠 나머지를 제거해주고, 다시 100을 곱해준다.
  • 00부터 99 사이의 수 중 F로 나눠지면 for문을 멈춰준다.

  • 끝 두자리를 잘라내야 하므로 문자열로 바꿔주고, slice()로 끝 두 자리만 잘라 출력해준다.
// input값 처리
const input = require('fs').readFileSync('/dev/stdin')
  .toString().trim().split('\n').map(Number);  // 정수화

console.log(solution(input[0], input[1]));

function solution(N, F) {
  N = Math.floor(N / 100) * 100;  // 끝 두자리를 00으로 초기화
  let ans;

  for (let i=N; i < (N+100); i++) {
    if (i % F === 0) {
      ans = i;
      break;
    }
  }
  ans = String(ans);
  return ans.slice(ans.length-2);
}

 

시간은 다음과 같이 걸렸다.

 

 

728x90
반응형

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ] 11047번 : 동전 0  (0) 2023.06.02
[BOJ] 2002번 : 추월  (0) 2023.05.31
[BOJ] 2798번 : 블랙잭  (1) 2023.04.22
[BOJ] 3085번 : 사탕 게임  (0) 2023.04.22
[BOJ] 1874번 : 스택 수열  (0) 2023.04.19