멀쩡한 사각형

zzwwoonn·2022년 6월 11일
0

Algorithm

목록 보기
52/71

못풀었다.

답지 보고 처음 든 생각.

답지 안보고는 뒤져도 못푼다.

하지만 이번에 한번 풀어봤으니 다음에 이런게 나오면 뒤져도 안틀린다.

import math

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

가로 + 세로 - 가로와 세로의 최대 공약수

그림을 그려보면 격자지점에 딱 맞춰서 지나가는 부분이 있다. (눈금 2개에 안걸치고 딱 깔 ㅡ 끔하게 지나가는 격자 지점)

그 부분이 바로 가로와 높이의 최대 공약수이다. 지나가는 모든 눈금을 위로, 왼쪽으로 밀착시키면 그 깔 ㅡ 끔하게 지나가는 격자 지점 말고는 딱 맞아 떨어진다. 최대공약수 지점, 즉 깔 ㅡ 끔하게 지나는 부분은 2개가 겹치지 않고 깔 ㅡ 끔하게 지나가니 각각 위쪽, 왼쪽으로 붙여줬을 때 한번 빼줘야 하는 것이다.

0개의 댓글