내 풀이
# 정사각형일경우 > 사용 못하는 정사각형의 갯수 : 가로숫자
# 직사각형일경우 > 사용 못하는 정사각형의 갯수 : 가로나 세로 중 작은 숫자 * 2
|
def solution(w,h):
answer = 1
rect = w*h
cantuse = 0
if(w == h):
cantuse = w
answer = rect - cantuse
elif(w < h):
cantuse = w*2
answer = rect - cantuse
elif(w > h):
cantuse = h*2
answer = rect - cantuse
return answer
|
cs |
결과

테스트케이스18개 중 5개만 통과했다ㅠ
이렇게 단순하게 접근하는게 아니였고,
입력받은 w, h의 최대공약수를 활용해야하는 문제였다..
다른사람 풀이
제일 명쾌한 해답이 있어서 참고하였다.
[프로그래머스] 멀쩡한 사각형 in python
파이썬으로 프로그래머스 풀기 :: 멀쩡한 사각형 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며
leedakyeong.tistory.com
소스
|
import math
def solution(w,h):
answer = 1
return w*h - (w+h-math.gcd(w,h))
|
cs |
결과

** import math로 gcd(최대공약수)를 활용하니 정확성은 물론 특히 시간이 매우 적게 걸렸다!
라이브러리 공부를 좀 더 열심히 해야겠다 ㅜㅅㅜ
'Algorithm > Python' 카테고리의 다른 글
| [백준] 1316 - 그룹 단어 체커 (Python) (3) | 2021.05.20 |
|---|---|
| [백준] 10870 - 피보나치 수 5 (Python) (0) | 2021.05.20 |
| 알고리즘 관련 파이썬 주요 라이브러리 (2) | 2021.05.19 |
| [프로그래머스] Level2 - 소수만들기 (Python) (0) | 2021.05.13 |
| [프로그래머스] LEVEL1 - 완주하지 못한 선수 (Python) (0) | 2021.05.02 |
댓글