[알고리즘] 나누기

2024. 1. 24. 22:02알고리즘 풀이/Java

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

 

1075번: 나누기

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

www.acmicpc.net

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws IOException {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      
      int N = Integer.parseInt(br.readLine());
      int F = Integer.parseInt(br.readLine());

      int behindTwoDigitAllZeroNumber = (N / 100) * 100;
      for (int i = 0; i < 100; i++) {
        int behindTwoDigitChangedNumber = behindTwoDigitAllZeroNumber + i;
        if (behindTwoDigitChangedNumber % F == 0) {
          BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
          for (int j = 0; j < (2 - String.valueOf(i).length()); j++){
          bw.write("0");
          }
          bw.write(String.valueOf(i));
          // bw.write(i);
          bw.flush();
          return ;
        }
      }
      
  }
}

나의 풀이

- 100으로 나누어주고 다시 100을 곱하는게 핵심

- 속도를 위해 BufferedReader와 BufferedWriter를 사용하였다.

- bw.write()에 int 값을 넣어주니 값이 나오지 않았다.

- bw.write(String.valueOf(i))로 넣어주니 잘 나왔다. 왜일까?