못풀었다.
답지 보고 처음 든 생각.
답지 안보고는 뒤져도 못푼다.
하지만 이번에 한번 풀어봤으니 다음에 이런게 나오면 뒤져도 안틀린다.
import math
def solution(w,h):
return w*h - (w+h-math.gcd(w,h))
가로 + 세로 - 가로와 세로의 최대 공약수
그림을 그려보면 격자지점에 딱 맞춰서 지나가는 부분이 있다. (눈금 2개에 안걸치고 딱 깔 ㅡ 끔하게 지나가는 격자 지점)
그 부분이 바로 가로와 높이의 최대 공약수이다. 지나가는 모든 눈금을 위로, 왼쪽으로 밀착시키면 그 깔 ㅡ 끔하게 지나가는 격자 지점 말고는 딱 맞아 떨어진다. 최대공약수 지점, 즉 깔 ㅡ 끔하게 지나는 부분은 2개가 겹치지 않고 깔 ㅡ 끔하게 지나가니 각각 위쪽, 왼쪽으로 붙여줬을 때 한번 빼줘야 하는 것이다.