제한시간(6s) 초과
###My solution
// 764번째 -> 5^10 = 9765625
// 764 => 10
function hamming(n) {
var pow = (i,j,k)=> Math.pow(2,i)*Math.pow(3,j)*Math.pow(5,k);
var permutate = (ni,nj,nk)=> {
var r = [];
for(var k=0;k<=nk;k++)
for(var j=0;j<=nj;j++)
for(var i=0;i<=ni;i++)
r.push([i,j,k]);
return r;
};
return permutate(
Math.ceil(Math.pow(n, 1/2)),
Math.ceil(Math.pow(n, 1/2)),
Math.min(20, Math.ceil(Math.pow(n, 1/2))))
.map(a=> pow(a[0],a[1],a[2]))
.sort((a,b)=>a-b)
[n-1];
}
문제에선 5000번째까지 구해야한다고 되어있는데, 위 함수로는 실제론 71_71_71 인 35만개를 구해버리기 때문에 엄청 느림(거기에다가 소팅을 또 함... 😢)
경우의 수를 줄이는게 중요할거 같은데 어떻게 줄여야할지..? n번째라는건 일단 답이 추정이 잘 안되는 상황인거 같은데.. 접근을 잘못 했나봄??