-
[Java 자바] 프로그래머스 Lv 0 - 유한소수 판별하기Study/Java 2024. 12. 9. 15:49728x90반응형
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
목차
1. 문제 설명
728x90문제 설명
소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다.
분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다.
유한소수가 되기 위한 분수의 조건은 다음과 같습니다.
기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다.
두 정수 a와 b가 매개변수로 주어질 때,
a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요.제한사항
- a, b는 정수
- 0 < a ≤ 1,000
- 0 < b ≤ 1,000
2. 입출력 예시
입출력 예시
#1
분수 7/20은 기약분수 입니다. 분모 20의 소인수가 2, 5 이기 때문에 유한소수입니다. 따라서 1을 return합니다.
#2
분수 11/22는 기약분수로 나타내면 1/2 입니다. 분모 2는 소인수가 2 뿐이기 때문에 유한소수 입니다. 따라서 1을 return합니다.
#3분수 12/21는 기약분수로 나타내면 4/7 입니다. 분모 7은 소인수가 7 이므로 무한소수입니다. 따라서 2를 return합니다.
3. 문제 풀이
반응형문제 풀이
class Solution { public int solution(int a, int b) { int answer = 0; // 기약분수 구하기 for(int i=b; i>1; i--){ if(b%i==0 && a%i==0){ b = b/i; a = a/i; } } // 분모를 2로 나누기 while(b%2==0){ b = b/2; } // 분모를 5로 나누기 while(b%5==0){ b = b/5; } // b값이 1이 아니라면, 무한소수 answer = (b==1) ? 1 : 2; return answer; } }
728x90반응형'Study > Java' 카테고리의 다른 글
[Java 자바] 프로그래머스 Lv 0 - 등수 매기기 (2) 2024.12.11 [Java 자바] 프로그래머스 Lv 0 - 특이한 정렬 (1) 2024.12.10 [Java 자바] 프로그래머스 Lv 0 - 겹치는 선분의 길이 (3) 2024.12.07 [Java 자바] 프로그래머스 Lv 0 - 평행 (0) 2024.12.06 [Java 자바] 프로그래머스 Lv 0 - 저주의 숫자 3 (0) 2024.12.05