본문 바로가기

그 땐 Algorithm했지/그 땐 Programmers했지

[TAVE/level 2] Python | 멀쩡한 사각형

728x90

문제

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

 

코딩테스트 연습 - 멀쩡한 사각형

가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을

programmers.co.kr

내 풀이

👉🏻전체 사각형의 수(w * h)에서 w와 h를 합한 값과 최대공약수를 빼면 된다!

✍🏻2*3일 때는 (2 * 3) - (2 + 3 - 1)이다.

from math import gcd

def solution(w, h):
    total_square = w * h
    greatest_common_divisor = gcd(w, h)
    return total_square - (w + h - greatest_common_divisor)

👉🏻python의 math에서 최대공약수를 구할 수 있는 gcd를 이용해 풀었다.

 

✅직접 최대공약수 구하기

def gcd(x, y):
    while y:
        x = y
        y = x % y
    return x

👉🏻두 수를 서로 나누어서 하나의 수가 0이 될 때까지 나눈다. 

728x90