프로그래머스 LV2 - 카펫
내 풀이
def solution(brown, yellow):
blocks = yellow
a = 1
b = 1
while True:
b = blocks / a
if a >= b and b == int(b):
if a * 2 + b * 2 + 4 == brown:
return [a+2,b+2]
else:
a += 1
continue
a += 1
다른 풀이
def solution(brown, yellow):
answer = []
total = brown + yellow
for h in range(3, total + 1):
if total % h == 0:
w = total/h
if (w - 2) * (h - 2) == yellow:
answer = [w,h]
break
return answer
풀이 해석
- h를 최솟값인 3부터 1씩 증가시키며 약수일경우 if 문을 실행시켰다
- 해당 if문을 만족할 경우 answer를 도출하였다
배울 점
- for 문을 활용해 약수 찾기, 약수일 경우에만 조건문 실행
댓글남기기