완전탐색 - 카펫 (Level 2)

jisu_log·2025년 3월 19일

알고리즘 문제풀이

목록 보기
2/105
post-thumbnail

def solution(brown, yellow):
    answer = []
    all_case = [] # yellow로 만들 수 있는 모든 [가로, 세로] 경우의 수
    
    for i in range(1, yellow + 1):
        if yellow % i == 0:
            a = i
            b = yellow / i
            
            if b > a: # 무조건 a(가로)가 b(세로)보다 같거나 더 크게 설정
                a, b = b, a
            if [a, b] not in all_case:
                all_case.append([a, b])
    
    for i in range(0, len(all_case)):
        a = all_case[i][0]
        b = all_case[i][1]
        calc_brown = (a + 2) * 2 + (b)*2
        if brown == calc_brown: # 입력받은 brown과 동일한 경우를 찾았다면
            answer.append(a + 2) # 실제 카펫의 길이는 + 2 해서 저장
            answer.append(b + 2)
            break
    
    return answer

0개의 댓글