sein-choi 님의 블로그

[프로그래머스 Lv.2 : 파이썬] 카펫 본문

QUIZ/[PYTHON]

[프로그래머스 Lv.2 : 파이썬] 카펫

sein-choi 2024. 9. 13. 11:08

카펫

 

def solution(brown, yellow):
    dict = {}
    # yellow의 약수를 구할 떄 yellow의 제곱근 전까지만 구하기
    for i in range(1, int(yellow**(1/2)+1)):
        # yellow의 약수를 짝지어서 구하기
        if yellow % i == 0:
            if i <= yellow // i:
                dict[i] = yellow // i
    # brown의 둘레 길이는 yellow의 (가로+세로)*2에서 4를 더한 값
    for key,value in dict.items():
        if brown == (int(key)+int(value))*2+4:
            return(value+2, key+2) # 전체 가로와 세로 길이는 yellow가로와 세로길이에서 +2를 한 것

 

 

다른 코드

def solution(brown, yellow):
    for i in range(1, int(yellow**(1/2))+1):
        if yellow % i == 0:
            if 2*(i + yellow//i) == brown-4:
                return [yellow//i+2, i+2]
  • 이번 문제에서는 변수를 저장하지않고 바로 사용하는 것이 코드를 간단하고 복잡하지않게 만들어 주었다