[프로그래머스 level2] 멀쩡한 사각형 Python

IT공부중·2020년 4월 10일
0

https://programmers.co.kr/learn/courses/30/lessons/62048


# def getGcd(w, h):
#     if (h == 0):
#         return w
#     return getGcd(h, w % h)

import math
def solution(w,h):
    if (w > h):
        w, h = h, w
    
    return w*h - (h + w - math.gcd(w,h))

어떻게 답이 도출 되는지 알기 어려웠다. 처음에는 한줄에 몇개씩 사용할 수 없는지 찾아내려고 했었는데, 몇 개는 맞았지만 답이 아니었다. 그래서 다른 곳을 찾아봤는데 최대공약수를 구해서 한다고 한다. 사용하지 못 하는 수의 개수가 h + w - h,w의 최대공약수를 하면 사용하지 못 하는 사각형의 수가 나왔다. 역시 뭐든지 규칙을 잘 찾는게 중요한 것 같다. 처음에는 최대공약수를 구하는 함수를 구현하여 사용하였는데 math라이브러리에 gcd라는 함수가 있어서 그것을 사용했다.

그래서 총 사각형 개수인 w * h에서 사용 못하는 사각형 수를 빼주면 답이 된다.

profile
3년차 프론트엔드 개발자 문건우입니다.

0개의 댓글