less than 1 minute read

출처

특이한정렬 풀이

def solution(numlist, n):
    # 일단 값의 차이로 정렬한다.
    # 만약 같다면 큰수가 먼저오도록 정렬해야 하는데 (-1)을 곱해서 우선순위를 뒤집어준다.
    return sorted(numlist, key=lambda x: (abs(x-n), x*(-1)))

저주의숫자 풀이

import math

def solution(a, b):
    gcd = math.gcd(a, b)
    a, b = a//gcd, b//gcd
    
    # 분모를 10^n 으로 나타낼수 있으면 유한소수이다. 10^n = (2*5)^n 이기 때문이다.
    # 따라서 소인수가 2 또는 5외에 다른 수가 하나라도 들어가 있으면 순환소수라고 한다.
    while b%2==0 or b%5==0:
        if b%2==0:
            b = b//2
        if b%5==0:
            b = b//5
    
    return 1 if b==1 else 2

Leave a comment