Skip to content

[Leetcode] 263. Ugly Number โ€‹

Problem โ€‹

๋ฌธ์ œ ๋งํฌ

ugly number๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ.
ugly number๋Š” ์†Œ์ˆ˜ 2,3,5 ๋กœ ๊ตฌ์„ฑ๋œ ์–‘์˜ ์ •์ˆ˜

Solution โ€‹

์ฃผ์–ด์ง„ ์ˆซ์ž๋ฅผ 2, 3 ,5 ์ˆœ์„œ๋กœ๋Œ€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์„๋•Œ๊นŒ์ง€ ๋‚˜๋ˆˆ ํ›„ ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ€ 1์ด๋ฉด ugly number๋กœ ํŒ๋‹จํ•œ๋‹ค. ์ž…๋ ฅ์ด 0์ผ ๊ฒฝ์šฐ ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ false๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

Code โ€‹

ts
function isUgly(n: number): boolean {
    if (n === 0) return false
    
    const basePrime = [2,3,5]
    
    const result = basePrime.reduce((acc, prime) => {
        while(acc % prime === 0) {
            acc /= prime
        }
        return acc
    }, n)
    
    return result === 1
};