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

 

코딩테스트 연습 - 카펫

Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 ��

programmers.co.kr

▶ 코드

def solution(brown, yellow):
    s = brown+yellow

    # 합 :조합 구하기
    temp1 = []
    for i in range(3, s+1):
        flag = 0
        if s%i == 0:
            flag = 1
            left = s//i
            right = i
        if flag==1 and left >= right:
            temp1.append([left,right])

    # yellow 조합 구하기
    temp2 = []
    for i in range(1, yellow+1):
        flag = 0
        if yellow%i == 0:
            flag = 1
            left = yellow//i
            right = i
        if flag==1:
            temp2.append([left, right])

    #print('합 = ',temp1)
    #print('yellow=', temp2)
    #print()

    # yellow와 합 리스트 하나씩 비교
    # 조건: yellow의 left,right는 '합'의 left,right보다 둘다 무조건 작고,
    #       yellow의 left, right보다 '합'의 left,right는 항상 각각 2이상 커야한다.

    for a in temp2: # yellow
        for b in temp1: # '합'
            if a[0]+2 <= b[0] and a[1]+2 <= b[1]:
                res = [b]
                #print(res[0])
                return res[0]
                break
        


#solution(10, 2)
#solution(8, 1)
#solution(24, 24)

 

 

'[프로그래머스] 코테 고득점 Kit > 완전탐색' 카테고리의 다른 글

[Level 2] 소수 찾기  (0) 2020.05.15
[Level 1] 모의고사  (0) 2020.05.15