반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 좋은 알고리즘
- python
- 자바
- list
- 알고리즘의 조건 5가지
- 자료구조
- LV.1
- 유사코드
- java
- import itertools
- 들여쓰기로 표현한 트리
- itertools
- 리스트
- 알고리즘
- 트리
- 코딩 테스트
- 태그
- 알고리즘의 조건
- 코딩테스트
- 알고리즘 표현
- 유한소수 판별하기
- Combination
- Tree
- 과일 장수
- 큐
- Import
- 프로그래머스
- 스택
- 파이썬
- html
Archives
- Today
- Total
인천의 자유인
[Python] 유한소수 판별하기 - 프로그래머스 본문
728x90
반응형
나의 문제풀이
def solution(a, b):
#1
lst = []
for x in range(1,a+1):
if a%x == 0:
lst.append(x)
#2
for i in lst:
if b%i == 0 and a%i == 0:
a = a//i
b = b//i
#3
for x in range(2,b+1):
if x%2 == 0 or x%5 == 0:
continue
if b%x == 0:
return 2
return 1
#1번은 먼저 a의 약수를 구하기 위한 식입니다. a의 약수를 차례대로 lst라는 리스트에 저장을 합니다.
#2번은 기약분수를 만들기 위해서 나누는 것인데 a의 약수로 b까지 나눌 수 있을때까지 출력하는 것입니다. 그래서 a도 b도 크기를 최소한으로 만드는 것이죠.
#3번은 유한소수인지 무한소수인지 판별하는 구간입니다. 만약 이 값이 2나 5로 나눠지면 continue를 해서 넘어가고 그것이 아니라 다른 값으로도 나눠진다면 유한소수가 아니기 때문에 return 2를 합니다. 예를 들어 6이라는 정수가 있다고 했을때 2로 나눠지긴하지만 3으로도 나눠지기 때문에 유한소수가 아닌 것입니다. 만약 이러한 조건을 통과했는데도 2나 5외에 다른 수가 나오지 않는다면 소인수가 2와 5밖에 없다는 것이 되기 때문에 유한소수가 되며, 결과적으로 return 1를 하면 문제가 해결됩니다.
728x90
반응형
'Python > Python코딩테스트' 카테고리의 다른 글
[Python] 특이한 정렬 - 프로그래머스 (0) | 2024.05.08 |
---|---|
[JAVA] 유한소수 판별하기 - 프로그래머스 (0) | 2024.05.07 |
[Python] 겹치는 리스트 - 프로그래머스 (0) | 2024.05.04 |
[Python] 평행 - 프로그래머스 (0) | 2024.05.04 |
[Python] 안전지대 - 프로그래머스 (0) | 2024.05.03 |