[프로그래머스] 카펫
[프로그래머스] 카펫
문제
링크 : 프로그래머스
풀이
카펫의 가로, 세로 길이를 알기 위해서, 적당한 수학식을 이용하여 탐색하는 방법을 썼다.
소수찾기에서 했던, 방법을 이용해서 약수를 모두 구한 후, 그 값을 이용해 brown의 값과 일치하는 지
파악한 후에 일치한다면 answer에 넣게 했다.
import math
def solution(brown, yellow):
answer = []
res = []
for i in range(1, int(math.sqrt(yellow) + 1)):
if yellow % i == 0:
garo, sero = yellow//i, i
res.append([garo, sero])
for i in range(len(res)):
if ((res[i][0] + 2) * (res[i][1] + 2) - yellow) == brown:
answer.append(res[i][0] + 2)
answer.append(res[i][1] + 2)
break
return answer
실수 및 배운 점
- 맞추긴 했지만, 많은 고민을 했다. 어렵지 않은 문제였는데 어렵게 생각하다보니 그렇게 된 것 같다.