Level 0. 유한소수 판별하기
유한 소수인 분수는 다음을 만족한다.
최소공배수를 구하여 약분하기보다는 이 풀이가 좀 더 간단하고 효율적이라고 생각한다.
분모를 먼저 2와 5로 나누어 떨어지지 않을 때까지 나눈다.
이때 분자가 분모로 나누어 떨어지면 유한 소수로 나타낼 수 있는 분수이다.
#include <iostream>
using namespace std;
int solution(int a, int b)
{
while ((b & 1) == 0)
b >>= 1;
while (b % 5 == 0)
b /= 5;
return (a % b) ? 2 : 1;
}
'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 1. 같은 숫자는 싫어 (0) | 2023.02.10 |
---|---|
Level 1. 문자열 내 p와 y의 개수 (0) | 2023.02.09 |
Level 0. 소인수분해 (0) | 2023.02.07 |
Level 0. 구슬을 나누는 경우의 수 (0) | 2023.02.06 |
Level 0. 다항식 더하기 (0) | 2023.02.05 |