[프로그래머스 Level.2 / Python] 카펫

오형상·2023년 4월 24일
0

알고리즘

목록 보기
12/23
post-thumbnail

알고리즘 유형 : 완전 탐색
풀이 없이 스스로 풀었나요? : ❌


프로그래머스 Level.2 카펫

솔루션

  1. 카펫의 가로길이는 세로 길이와 같거나, 세로 길이보다 깁니다. ➡ a >= b
  2. 갈색 개수는 = 노란색 가로 길이 2 + 노란색 세로 길이 2 + 꼭지점 개수 ➡ brown = 2a + 2b - 4
  3. 노란색 개수 = 노란색 가로 길이 노란색 세로 길이 ➡ yellow = (a-2) (b-2) = ab -2a -2b + 4
  4. ab = 전체 개수 = yellow + brown

위의 조건들을 정리하면
yellow = yellow + brown - 2a -2b + 4
2a + 2b = brown + 4

코드

def solution(brown, yellow):
    answer = []
    total = brown + yellow  
    for b in range(3, total + 1):
        if (total / b) % 1 == 0:  
            a = total / b
            if a >= b:
                if 2 * a + 2 * b == brown + 4: 
                    return [a, b]

    return answer


print(solution(10, 2))


후기

도저히 공식? 규칙?을 찾을 수 없었다 😥

0개의 댓글

Powered by GraphCDN, the GraphQL CDN