반응형
SMALL
유명한 못 생긴 수입니다.
원래 유명한 문제인 못 생긴 수는 이 문제가 아니죠.
약간... 빌드업을 위한? 문제라고 생각하시면 될 거 같습니다.
즉, 다음 문제는 그 유명한 못 생긴 수이고, 오늘 문제는 이 문제로 갑시다.
https://leetcode.com/problems/ugly-number/
본 문제는 하나의 수가 주어졌을 때 2, 3, 5의 곱으로만 이루어진 수이냐? 를 물어봅니다.
맞으면 True, 틀리면 False를 반환하면 됩니다.
예외 케이스로서는 1은 무조건 못 생긴 수이며 0을 포함한 음수는 전부 못 생긴 수가 아니죠.
class Solution:
def isUgly(self, num: int) -> bool:
if num == 0: return False
while 1:
if num % 5 == 0: num = num // 5
else: break
while 1:
if num % 3 == 0: num = num // 3
else: break
while 1:
if num % 2 == 0: num = num // 2
else: break
if num == 1: return True
else: return False
간단합니다 ! 계속해서 반복문 돌면서 맞으면 5로 나누어 떨어지면 5로 나누고, 3으로 나누어 떨어지면 3으로 나누고, 2로 나누어 떨어지면 2로 나누면 됩니다.
쉽죠?
근데 코드가 지저분 하네요. 수정을 해봅시다.
class Solution:
def isUgly(self, num: int) -> bool:
if num <= 0: return False
while num % 5 == 0 or num % 3 == 0 or num % 2 == 0:
if num % 5 == 0:
num = num // 5
elif num % 3 == 0:
num = num // 3
elif num % 2 == 0:
num = num // 2
if num == 1: return True
else: return False
좀 더 깔끔해졌죠??
이상 263. Ugly Number였습니다. ^_^
못생긴 것도 서러운데 ㅠㅠㅠ
반응형
LIST
'알고리즘 문제 풀이 > LeetCode' 카테고리의 다른 글
264. Ugly Number II (Heap) (0) | 2020.07.05 |
---|---|
26. Remove Duplicates from Sorted Array (0) | 2020.07.05 |
307. Range Sum Query - Mutable (0) | 2020.07.03 |
20. Valid Parentheses (0) | 2020.07.01 |
14. Longest Common Prefix (2) | 2020.07.01 |