나의 답 :
def solution(w,h):
s=w*h
if w%h==0 or h%w==0:
return s-max(w,h)
else:
a=w
b=h
if w < h: (w, h) = (h, w)
while h != 0:
(w, h) = (h, w % h)
return s-w*((a/w)+(b/w)-1)
다른 사람의 답 :
def gcd(a,b): return b if (a==0) else gcd(b%a,a)
def solution(w,h): return w*h-w-h+gcd(w,h)
최대공약수를 생각해낸 것이 뿌듯했다.
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/62048
'공부 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 주식가격(파이썬) (0) | 2021.01.22 |
---|---|
[프로그래머스] 124나라의 숫자(파이썬) (0) | 2021.01.19 |
[프로그래머스] 프린터(스택/큐) (0) | 2021.01.15 |
[프로그래머스] 2018 KAKAO BLIND RECRUITMENT 다트 게임(파이썬) (0) | 2021.01.14 |
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT 실패율 (0) | 2021.01.12 |