백준 문제풀이
백준 while문 - 10952, 10951, 1110 (javascript)
developer Jenna
2021. 12. 2. 10:31
1. 10952
const readline = require('readline')
const rl = readline.createInterface({
input : process.stdin,
output : process.stdout
})
const solution = (input) => {
// console.log(input)
let i = 0;
while(i<input.length){
const N = input[i].split(" ").map(e => parseInt(e));
if( N[0]===0 && N[1]===0){
break;
}
console.log(N[0] + N[1])
i++;
}
}
const input = [];
rl.on("line", function(line){
input.push(line);
}).on("close", function(){
solution(input);
process.exit();
})
- 조건으로 while문 종료할 때 break 사용하기
2. 10951
const readline = require('readline')
const rl = readline.createInterface({
input : process.stdin,
output : process.stdout
})
const solution = (input) => {
// console.log(input)
let i = 0;
while(i<input.length){
const N = input[i].split(" ").map(e => parseInt(e));
console.log(N[0] + N[1])
i++;
}
}
const input = [];
rl.on("line", function(line){
input.push(line);
}).on("close", function(){
solution(input);
process.exit();
})
3. 1110
const readline = require('readline')
const rl = readline.createInterface({
input : process.stdin,
output : process.stdout
})
const solution = (input) => {
let num = input;
let sum ;
let i = 0;
while (true) {
i++;
sum = Math.floor(num / 10) + num % 10;
// console.log("sum",sum)
num = (num % 10) * 10 + sum % 10;
// console.log("num",num)
if (input == num) {
break;
}
}
console.log(i);
}
const input = [];
rl.on("line", function(line){
input.push(line);
}).on("close", function(){
solution(input);
process.exit();
})
엄청 오래 고민한 데에 비해 생각보다 답은 간단했던 문제였다. 문제에서 주어지는 값은 최대 두 자리 수임에 유의하자.
- 일의 자리 구하는 식 : num%10
- 십의 자리 구하는 식 : Math.floor(num/10)
- '주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수를 만든다'라는 말에 현혹되어 어렵게 생각할 필요 없다. 결국 위의 식을 통하면 한 자릿수의 십의 자리는 0이 된다.
(나는 이 말에 속아 숫자를 배열로 바꾸고 배열 앞에 unshift로 0을 넣는 뻘짓을 했다ㅎㅎ) - 끝나는 조건이 주어진다면 break로 while문을 종료한다.