[프로그래머스 python]완전탐색 카펫
2020-04-04https://programmers.co.kr/learn/courses/30/lessons/42842
brown | red | return |
---|---|---|
10 | 2 | [4, 3] |
8 | 1 | [3, 3] |
24 | 24 | [8, 6] |
빨간색 타일의 가로 세로 크기를 구하고 거기에 가로세로를 2칸씩 더해주면 원하는 크기가 된다.
빨간타일의 x, y가 각 6,4 일때 xy의 각각에 2를 더한 8,6에서 brown의 크기만큼을 뺐을때 같은것을 찾아서 풀수있었다.
def solution(brown, red):
for i in range((red//2)+2):
for j in range(i+1):
if i*j == red:
sq_red=i*j
sq_brown=(i+2)*(j+2)
if sq_brown-sq_red == brown:
return [i+2,j+2]
급하게 풀고나서 정신차려보니 쓸데없이 반복문을 2중으로 돌렸다. 그냥 나눠떨어져서 몫이 얼만지만 찾으면 되는것을..
def solution(brown, red):
for i in range(1,(red//2)+2):
if red%i == 0:
j=red//i
sq_red=i*j
sq_brown=(i+2)*(j+2)
if sq_brown-sq_red == brown:
return [j+2,i+2]