[백준 4673 javascript] 셀프 넘버

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

Javascript 코테준비

목록 보기
8/9

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

접근
완전 탐색 문제로,0부터 10000까지 반복문을 돌리며 각 수가 셀프넘버가 됐을때 몇인지를 계산하고 배열에 push한다. 그 후 array에 포함되지 않는것들을 출력하면 되겠다.

let array = []
function selfNumber()
{
    let dn;
    for(let i = 0 ;i<10000;i++)
    {
        if(i<10)
        {
            dn = i*2
        }
        else if(i >= 10)
        {
            dn = i + i.toString().split('').map(item=>parseInt(item)).reduce((prev,cur)=>{
                cur = parseInt(prev) + cur
                return cur;
            },0)
        }
        array.push(dn)
    }

}

selfNumber()


for(let i = 1;i<=10000;i++)
{
    if(!array.includes(i))
    {
        console.log(i)
    }

}

dn = i + i.toString().split('').map(item=>parseInt(item)).reduce((prev,cur)=>{
cur = parseInt(prev) + cur
return cur;
},0)

숫자가 두자리 수 이상일때 수를 한 자리 씩 split으로 나눈 후에 reduce로 더해줘 값을 계산해주는 방식을 사용했다.

정리
모든 수를 다 완전탐색하는 방식을 사용하는게 핵심
숫자를 split하여 더하는 로직

완전탐색 방식은 복잡한 로직을 요한다기 보단 문제에서 보이는 그대로 계산해주는게 좋은 방식같아보인다.

profile
프론트엔드 개발자가 되기 위해 노력하는 과정

0개의 댓글

관련 채용 정보