소스 코드
def solution(brown, yellow):
total_size = brown + yellow
for i in range(1,total_size + 1):
if total_size % i == 0:
width = i
height = total_size // i
if width >= height and width == yellow // (height - 2) + 2:
return [width, height]
풀이
해당 문제는 모든 카펫 모양을 구해보면서 문제 설명에서 언급한 조건에 맞는 카펫만 찾으면 된다. 가운데에 노란색 카펫이 있고 그 주위를 갈색 카펫으로 빠짐없이 덮기 위해서는 높이가 가로 길이보다 더 커서는 안되며 yellow의 층이 높아짐에 따라 width 는 width == yellow // (height - 2) + 2 같은 패턴을 따라야 한다는 것을 발견하였다.
'Python > 알고리즘' 카테고리의 다른 글
완전탐색 Level 2 모음사전 - python (프로그래머스) (0) | 2023.06.23 |
---|---|
완전탐색 Level 2 피로도 - python (프로그래머스) (0) | 2023.06.23 |
완전탐색 Level 2 소수 찾기 - python (프로그래머스) (0) | 2023.06.23 |
완전탐색 Level 1 최소직사각형 - python (프로그래머스) (0) | 2023.06.23 |
정렬 Level 2 H-Index - python (프로그래머스) (0) | 2023.06.23 |