문제
풀이방법
- N의 마지막 두 자리를 0으로 만들어 준 후 1씩 증가시켜 F로 나누어떨어지는 최소 N을 찾는다.
알게된 것
- String.format() vs System.out.printf()
- String.format()
- Formatter 클래스의 메소드
- 문자열화 시킨 것을 String형 변수에 바인딩 시킬 수 있음(String 형 결과가 return됨)
- System.out.printf()
- 문자열화 시킨 것을 PrintStream으로 바로 출력
- String.format()
코드
👇🏻 1차 작성한 코드 (for문 사용)
package boj1075;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int f = sc.nextInt();
int k = n % 100;
n -=k;
for (int i = 0; i <= 99; i++) {
if ((n + i) % f == 0) {
if (i < 10) {
System.out.printf("%02d",i);
} else {
System.out.println(i);
}
break;
}
}
}
}
👇🏻 중복 및 반복되는 부분을 수정한 최종 코드 (while문 사용)
package boj1075;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int f = sc.nextInt();
n -= n % 100;
while (true) {
if (n % f == 0) {
break;
}
n++;
}
System.out.printf("%02d", n % 100);
}
}
👇🏻 bufferedreader, format() 사용한 최종코드
package boj1075;
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());
n -= n % 100;
while (true) {
if (n % f == 0) {
break;
}
n++;
}
System.out.format("%02d", n % 100);
}
}
드디어 아무 도움 없이 혼자 힘으로 푼 첫문제
부족한 부분이 많아서 수정과정도 같이 기록 !
'코딩테스트' 카테고리의 다른 글
[백준 / 실버 5] 1652 : 누울 자리를 찾아라 (JAVA) (0) | 2023.03.11 |
---|---|
[백준 / 브론즈2] 1100 : 하얀 칸 (JAVA) (0) | 2023.03.09 |
[백준 / 브론즈2] 16561 : 3의 배수 (JAVA) (0) | 2023.02.26 |
[백준 / 실버4] 1120 : 문자열 (JAVA) (0) | 2023.02.23 |
[백준 / 브론즈1] 1037 : 약수 (JAVA) (0) | 2023.02.15 |