728x90
1 2 3 4 5 6 | def solution(b, y): #b = 24 y = 24 minY = b//2-3 #최소 노란색 수 (양쪽 하나만 있을경우가 제일 작은 노란색 수) for x in range(1, b): #양쪽 1칸 일 경우부터 양변의 길이가 똑같을 때까지만 하면 되지만, 같아 지기 전에 리턴 하기때문에, 간편하게 이렇게함. if minY*x == y: #원하는 노란색 수 구해지면, 리턴. return [minY+2, x+2] minY -= 1 #세로가 한칸씩 늘어날때마다, 가로가 한칸씩 줄어듬. | cs |
brown = 24
yellow = 24
이렇게 가정하고, 문제풀이 갑니다~
1. 최소 노란색 수 구하고 ( 최소 노란색수 = 갈색//2-3)
2로 나눈다음에, 세로 1칸씩 할당하면 최소 노란색수
2. 세로를 한칸씩 늘려가면서 노란색 수가 맞는지 확인 노란색 수가 맞으면, 리턴~
3. 세로 한칸씩 늘릴때마다, 가로가 한칸씩 줄어듬.
728x90