[백준 1065 javascript] 한수

레슬코딩·2023년 8월 24일
0

Javascript 코테준비

목록 보기
9/9

https://www.acmicpc.net/problem/1065

접근

1~99까지

연속된 두 개의 수의 차이는 항상 일정하다. 비교할 대상이 하나(1~9) 또는 둘(10~99)이기 때문에 이는 모두 한수이다.

100~ 210까지는 연속된 두 개의 수의 차이가 항상 일정한 수는
111, 123, 135, 147, 159, 210
로 총 6개이다.

1~99
수만큼 count ++

100부터 N까지

수를 한자리씩 split 한 후 연속된 수의 차이가 같은지 확인하면 되겠다.

for문으로 array의 length까지 index와 index+1 로 접근하는 방식

제출답안

const fs= require('fs')
// const input =fs.readFileSync('../text.txt').toString()
const input =fs.readFileSync('dev/stdin').toString()
const N = parseInt(input)
let count = 0;
//두자리 숫자라면
if(N < 100)
{
    //주어진 값만큼 한수 존재
    count = N
}
else
{
    //count를 99부터 시작 (두자리 숫자 모두 포함)
    count = 99
    for(let i = 100; i <=N;i++)
    {
        //각 자리수 array에 추가
        let arr = i.toString().split('').map(item=>+item)
        let temp
        //세자리 수일때
        if(arr.length === 3)
        {
            if((arr[0]-arr[1]) === (arr[1] - arr[2]))
            {
                count++
            }
        }
        else if(arr.length === 4)
        {
            if(((arr[0]- arr[1]) === (arr[1] - arr[2])) && ((arr[1]-arr[2]) === (arr[2] -arr[3])))
            {
                count++
            }
        }
    }

}
console.log(count)
profile
프론트엔드 개발자가 되기 위해 노력하는 과정

0개의 댓글

관련 채용 정보