Problem Solving/BOJ

[백준 / BOJ] C++ 1075 나누기

nageune 2023. 2. 8. 22:57
728x90
반응형

1075번: 나누기

 

문제

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

 

1075번: 나누기

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

www.acmicpc.net

 

 

풀이

100 이상의 정수 N을 입력받고 100 미만의 F를 입력받아 N의 뒤에서부터 두 자리를 바꾸어 F로 나누어 떨어지게 하는 문제다. 뒤에 두 자리가 최솟값이 되도록 해야 하므로 00부터 증가시켜 가며 탐색하면 된다.

 

  1. N의 뒤에서부터 두 자리를 0으로 바꾼다. (N을 100으로 나눈 나머지를 N에서 뺀다.)
  2. for문을 사용해 0부터 99까지 N에 더해가며 F로 나누어떨어지는지 확인한다.
  3. 나누어 떨어지는 수가 나오면 ans에 저장하고 for문을 탈출한다.
  4. 출력 형식에 맞추어 ans가 한 자리 수면 앞에 0을 출력하고 ans를 출력한다. 그렇지 않으면 ans를 출력한다.

 

 

코드

#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_false(false);
  cin.tie(NULL);
  int N, F, ans;
  cin >> N >> F;
  N -= N % 100;
  for (int i = 0; i < 100; i++) {
    if ((N + i) % F == 0) {
      ans = i;
      break;
    }
  }
  if (ans < 10)
    cout << 0;
  cout << ans << '\n';
  return 0;
}
728x90
반응형