brown yellow
24 24
1. yellow가 만들어 낼 수 있는 모든 경우의 수를 탐색해야한다.
-> 소인수분해로 만들 수 있는 사각형 찾아낸다. (1, 24) (2, 12) (3, 8) (4, 6)
2. 각 사각형에 대해서 테두리갯수를 구하고 brown이랑 같으면 그때의 사각형을 sort해서 return
import math
def get_divisor(num):
divisors = []
length = int(math.sqrt(num))+1
for i in range(1,length):
if num%i == 0:
a =(i, num//i)
divisors.append(a)
return divisors
def solution(brown, yellow):
answer = []
tmp = get_divisor(yellow)
for i in tmp:
if (4 + 2*(i[0] + i[1])) == brown:
answer.append(i[0]+2)
answer.append(i[1]+2)
answer=sorted(answer,reverse=True)
return answer
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스/Python] K번째수(정렬) (0) | 2020.12.16 |
---|---|
[프로그래머스/Python] 모의고사(단순구현) (0) | 2020.12.16 |
[프로그래머스/Python] 완주하지 못한 선수(해쉬) (0) | 2020.12.16 |
[프로그래머스/Python] 소수찾기(소수/순열/중복제거) (0) | 2020.12.16 |
[프로그래머스/Python] 전화번호 목록(효율성) (0) | 2020.12.12 |