[프로그래머스 Lv2] 카펫(python)

이진규·2022년 3월 3일
1

프로그래머스(PYTHON)

목록 보기
32/64

문제

https://programmers.co.kr/learn/courses/30/lessons/42842

나의 코드 (답안참조)

"""
1. 아이디어

2. 시간복잡도

"""

def solution(brown, yellow):
    answer = []
    
    total = brown + yellow # ab = brown + yellow
    
    for b in range(1, total + 1):
        if total % b == 0: # a(가로) * b(세로) = total
            a = total // b
            
            if a >= b:
                if 2*a + 2*b - 4 == brown:
                    answer.append(a)
                    answer.append(b)
                    break
                    
    return answer
    

설명

위의 공식을 이용하여 풀어야 한다.
참고로 1번은 문제에 나와있는 제한 조건이고, 2번은 ab - (a-2)*(b-2)를 풀어쓴 것이고, 3번은 안쪽 노란색 직사각형의 넓이를 나타낸 것이다.

다시 풀이한 코드

참고자료

https://dev-note-97.tistory.com/87

profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글