Algorithm/Programmers

[Programmers] Lv2. 멀쩡한 사각형

by somida 2021. 5. 20.

문제

바로가기

 

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

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

programmers.co.kr

 

풀이

  • 전체 면적에서 가로로 가는길(w)과 세로로 가는길(h)를 한 번씩 빼주고 겹치는 구간인 w, h의 최대공약수를 더해줌
  • gcd는 최대공약수를 구하는 함수로 w를 h로 나눴을 때 나머지가 없을 때까지 나누는 과정을 반복

 

코드

def gcd(w, h):
    while w % h:
        w, h = h, w % h
    return h

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

 

반응형

댓글