[ 백준 ] 1075 나누기 [ js ]

Ann·2023년 11월 22일
0

Algorithm

목록 보기
52/53

1075 나누기

문제

두 정수 N과 F가 주어진다. 지민이는 정수 N의 가장 뒤 두 자리를 적절히 바꿔서 N을 F로 나누어 떨어지게 만들려고 한다. 만약 가능한 것이 여러 가지이면, 뒤 두 자리를 가능하면 작게 만들려고 한다.

예를 들어, N=275이고, F=5이면, 답은 00이다. 200이 5로 나누어 떨어지기 때문이다. N=1021이고, F=11이면, 정답은 01인데, 1001이 11로 나누어 떨어지기 때문이다.

입력

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

출력

첫째 줄에 마지막 두 자리를 모두 출력한다. 한자리이면 앞에 0을 추가해서 두 자리로 만들어야 한다.

풀이

// let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
let input = [428392, 17];

let [N, F] = input.map(n=>parseInt(n));
let newArr = String(N).split('');
newArr[newArr.length-1]="0";
newArr[newArr.length-2]="0";
let newN = parseInt(newArr.join(''))
let newRemain = newN%F;

if(newRemain!==0){
    let answer = String(F-newRemain).padStart(2,"0");
    console.log(answer)
}else{
    console.log("00")
}

마지막 두자리를 가장 작게 해야하므로 마지막 두자리를 00 으로 바꾼 후,
마지막 두자리에 ( F-remain )값을 더하는 방법으로 풀이하였다.
( F 값이 100이하 이므로 remain은 무조건 두자리수 )
다만 나머지가 0일 경우에는 그대로 00이 출력되도록 하고,
( F-remain )값이 한자리수인 경우에는 10의 자리수에 0이 출력될 수 있도록 padStart(2, "0") 메서드를 사용하였다.

profile
안녕하세요

0개의 댓글