반응형
정답
let input= require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
sol(input)
function sol(input){
let arr = input.toString().split('').map(i => +i);
if(!arr.includes(0)){
console.log(-1);
}else{
let sum = arr.reduce((cur,val) => cur+val, 0);
if( sum % 3 !== 0){
console.log(-1);
}else{
arr.sort((a,b)=>b-a);
console.log(arr.join(''));
}
}
}
풀이
1. 30은 10 * 3 즉 10의 배수이면서 3의배수여야 한다. 일의자리가 0이 들어가지 않으면 10의 배수가 아님으로 -1 출력
2. 모든 숫자를 더하고 3으로 나누어 떨어지지 않으면 3의 배수가 아님 -1 출력
3. 위의 모든 조건을 만족하면 30의 배수이므로 내림차순으로 정렬 후 합쳐서 출력
배수 판정법
2의배수 : 일의 자리수가 0또는 짝수
3의배수 : 각 자리수의 합이 3의 배수
4의배수 : 끝의 두자리가 4의 배수
5의배수 : 일의 자리가 0 또는 5
6의배수 : 2의배수 이면서 3의배수
7의배수 : 7로 나누어서 나눠지면 7의배수
8의배수 : 끝의 세자리가 8의 배수
9의배수 : 각 자리수의 합이 9의 배수 ( 9의 배수이면 3의 배수이기도 하다)
10의배수 : 일의 자리수가 0
반응형
'Develop > 백준 코딩테스트' 카테고리의 다른 글
백준 코딩테스트 1715 자바스크립트 node.js (0) | 2022.07.29 |
---|---|
백준 코딩테스트 1946 신입 사원 자바스크립트 node.js (0) | 2022.07.12 |
백준 코딩테스트 1789 수들의 합 자바스크립트 node.js (0) | 2022.07.07 |
백준 코딩테스트 13305 자바스크립트 node.js (0) | 2022.07.05 |
백준 코딩테스트 10162 전자레인지 자바스크립트 node.js (0) | 2022.07.04 |