코딩 테스트/백준

[백준] 1075번: 나누기 (브론즈2, JAVA)

Nirsa 2023. 12. 5. 23:15
반응형

 

문제 링크 : https://www.acmicpc.net/problem/1075

 

[백준] 1075번: 나누기 (브론즈2, JAVA)

스캐너로 입력받아 정수 N은 nStr, 정수 F는 f 변수로 입력을 받은 후 입력받은 nStr의 값을 char 배열로 변경 합니다. 이후 변경된 char 배열을 가지고 가장 뒤에 있는 숫자 두개를 0으로 변경했습니다.

Scanner sc = new Scanner(System.in);
String nStr = sc.nextLine();
int f = sc.nextInt();

char[] arrCh = nStr.toCharArray();
arrCh[arrCh.length-1] = '0';
arrCh[arrCh.length-2] = '0';

 

다음으로는 char 배열을 다시 int로 변경하고 반복문을 실행 합니다. 여기서 0으로 변경된 두개의 숫자는 00~99까지만 표현이 가능하므로 i<100의 조건을 주어 최대 100번만 반복 가능하도록 하였습니다.

또한 조건식에서 배수를 구하면 가장 작은 수의 배수가 구해지고 2라면 02, 95라면 95를 출력하며 break문으로 반복문을 빠져나오게 됩니다. 만약, 배수가 아니라면 num의 숫자를 1씩 증가하여 맨 뒤에 변경되었던 숫자(00)을 1씩 증가시켜 반복합니다.

int num = Integer.parseInt(new String(arrCh));
for(int i=0; i<100; i++) {
    if(num % f == 0) {
        System.out.printf("%02d", i);
    break;	
    } else {
        num++;
    }
}

 

최종 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	String nStr = sc.nextLine();
    	int f = sc.nextInt();
    	
    	char[] arrCh = nStr.toCharArray();
    	arrCh[arrCh.length-1] = '0';
    	arrCh[arrCh.length-2] = '0';
    	
    	int num = Integer.parseInt(new String(arrCh));
    	for(int i=0; i<100; i++) {
    		if(num % f == 0) {
    			System.out.printf("%02d", i);
    		break;	
    		} else {
    			num++;
    		}
    	}
    }
}

 

 

반응형