728x90
입출력 예 #1가로가 8, 세로가 12인 직사각형을 대각선 방향으로 자르면 총 16개 정사각형을 사용할 수 없게 됩니다. 원래 직사각형에서는 96개의 정사각형을 만들 수 있었으므로, 96 - 16 = 80 을 반환합니다.
import math
def swap(a,b):
tmp= a
a = b
b = tmp
return a,b
def solution(w,h):#가로 세로 <- 시간복잡도 n2넘어가지 않게, 가로 세로 둘중하나는 그대로 이다
if w>h: w ,h = swap(w,h) #세로가 긴 경우로만 코딩 하겠다
pvt = h/w #기울기로 고려해보자
upper = int(math.ceil(pvt))
drop = int(pvt)
#if pvt - drop > 0.5:
return (w*h)-(w+h -math.gcd(w,h))
#else: # 0.5이하인 경우
#return w*(h-int(upper))
정리된 코드
import math
def solution(w,h):
return (w*h)-(w+h -math.gcd(w,h))
IDEA
728x90
'코테준비 > Programmers' 카테고리의 다른 글
소수 찾기(순열 이용) (0) | 2022.09.19 |
---|---|
더 맵게(heap 이용) (0) | 2022.09.19 |
124나라(3진법이용) (0) | 2022.09.19 |
행렬 테두리 회전하기(copy매소드) (0) | 2022.09.19 |
올바른 괄호(lambda이용) (0) | 2022.09.19 |