-
[백준/BOJ] 1075번 : 나누기 (JAVA / 자바)백준 2022. 2. 11. 00:11
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/1075
- 문제 -
난이도 브론즈 2 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
문제가 좀 애매한 느낌이 있어 좀 풀어서 설명해 보겠다.
뒤에 두자리를 바꿔서 두번째 입력값으로 나누어 떨어지는 값의 뒤에 두자리 값을 구하란 것이다.
예제 1번으로 보면 1000과 3이다.
우선 1000이 바뀔수 있는 범위는 뒤 두자리이기때문에 1000~1099이다.
1000에서 뒤에 두자리이면 00이다.
만약 1213에서 뒤에 두자리면 13이다. 이걸 잘 알아두자.
그렇다면 이제 1000부터 1씩 늘려서 3으로 나눠 줄 것이다. 나눠서 떨어지는 값을 구해서 그 값의 뒤 두자리 값을 구할 것이다.
1000은 3으로 나누어떨어지지 않는다. 1001 3으로 나누어 떨어지지 않는다. 1002는 3으로 나누어 떨어진다. 그렇다면 우선 02다. 원래는 이 뒤로 더 해봐야 하지만 보면 나누어 떨어지는 수중 뒤 두자리가 제일 작은 수를 구하는 것이다. 그렇다면 1000 ~ 1099 사이에서는 어떻게든 02보다 작은수는 나올 수가 없을 것이다.
기본적인건 이렇고, 다른 예제 하나 더 보자. 예제 5번.
32442다. 뒤의 두자리를 바꿀것이기 때문에 범위는 32400~32499이다. 이 값을 또 99로 나눠서 나누어떨어지는 시점까지 보면된다.
연산 순서대로 나열해보자.
첫번째 입력값 N, 두번째 입력값 F라 하겠다.
N의 뒤 두자리수를 00으로 만들어준다. N = (N - (N % 100))
반복문을 통해 뒤 두자리수가 00인 N 에 F를 나눠준다.
F로 나눴을때 나누어 떨어지면 반복문을 종료하고, 나누어 떨어지지 않으면 N에 +1을 해준다.
반복문이 종료되면 N을 %100 해준다. 그렇게 하면 뒤 두자리 숫자만 나올 것이다.
출력 형태는 00이기때문에 format으로 형태를 잡고 출력해준다.
-풀이-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; 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()); //뒤 두자리 수를 00으로 바꿔주는 과정 N -= (N % 100); //무한루프 while(true) { //나누어떨어지면 무한루프 종료 if(N % F == 0) { break; } N++; } System.out.format("%02d", (N % 100)); } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수분들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠습니다.
'백준' 카테고리의 다른 글
[백준/BOJ] 1100번 : 하얀 칸 (JAVA / 자바) (0) 2022.02.12 [백준/BOJ] 1076번 : 저항 (JAVA / 자바) (0) 2022.02.12 [백준/BOJ] 10833번 : 사과 (JAVA / 자바) (0) 2022.02.10 [백준/BOJ] 10824번 : 네 수 (JAVA / 자바) (0) 2022.02.10 [백준/BOJ] 10818번 : 최소, 최대 (JAVA / 자바) (0) 2022.02.10