https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
- 첫번째
let input = firstInputNum.toString();
let inputNum = +input;
let cnt = 0;
let finish = false;
while (!finish) {
if (inputNum < 10) {
input = "0" + input;
inputNum = +input;
}
let inputArr = input.split("");
let inputNumArr = inputArr.map((i) => +i);
//////////////////////////////////////
//////////////////////////////////////
let result = (inputNumArr[0] + inputNumArr[1]).toString();
let resultNum = +result;
if (resultNum < 10) {
result = "0" + result;
resultNum = +result;
}
let resultArr = result.split("");
let resultNumArr = resultArr.map((i) => +i);
//////////////////////////////////////
//////////////////////////////////////
input = inputArr[1] + resultArr[1];
inputNum = +input;
cnt++;
if (inputNum === firstInputNum) {
console.log(cnt);
finish = true;
}
}
- 두번째
const firstInputNum = require('fs').readFileSync('dev/stdin').toString().trim();
let inputNum = firstInputNum;
let result = 0;
let cnt = 0;
let finish = false;
while (!finish) {
result = Math.floor(inputNum / 10) + (inputNum % 10);
inputNum = inputNum%10*10 + result%10;
cnt++;
if(firstInputNum==inputNum){
finish = true;
}
}
console.log(cnt);
- 메모
당연히 문자열 배열로 만들어 문자열끼리 더해줘야 할 것으로 생각했는데, 굳이 그럴 필요가 없었다.
'기타 > 알고리즘(백준)' 카테고리의 다른 글
[JS] 백준 1157 단어 공부(중복되는 문자열 개수 세는 법) (0) | 2022.10.13 |
---|---|
[JS] 백준 3052번 나머지 (배열 중복 요소 제거 방법 세 가지) (0) | 2022.09.29 |
[JS] 백준 2480 주사위 세개 (0) | 2022.09.21 |
[JS] 백준 2525번 오븐 시계 (0) | 2022.09.21 |
[자바스크립트] 백준 10172번 '개' (0) | 2022.01.14 |