programmers.co.kr/learn/courses/30/lessons/62048
코딩테스트 연습 - 멀쩡한 사각형
가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 ��
programmers.co.kr
summer / winter Coding(2019)
from math import gcd
def solution(w,h):
b = w + h - gcd(w,h)
answer = (w*h) - b
return answer
w,h가 공약수가 있을때, 공약수로 나눠 w', h'로 축소가능하다. w',h'가 서로소라 가정했을때 대각선은 반대쪽 코너에 도달하기 전 w'-1세로선과 h'-1가로선을 지나가고 지나갈때마다 새로운 정사각형이 추가된다. 그래서 첫 정사각형을 포함해 1 - (w' - 1) + (h' - 1) = w' + h' - 1개의 정사각형을 지나게 되므로 공약수를 다시 곱해주면 w + h - gcd(w,h)개의 정사각형을 지나가는 걸 알 수 있다.
최대공약수를 이용해 푼 문제. 아직도 수학문제는 감도 안잡힌다... 알고리즘 문제보다 더 어려운것처럼 느껴지는 ..ㅠㅠ 질문목록에서 설명해준걸 보고 풀었다....거의 다 알려준거나 다름없지만...
'2 > 프로그래머스' 카테고리의 다른 글
프로그래머스 연습 문제 - 튜플 (0) | 2020.10.19 |
---|---|
프로그래머스 연습 문제 - 셔틀버스 (0) | 2020.10.18 |
프로그래머스 연습 문제 - 피보나치 수 (0) | 2020.10.15 |
프로그래머스 연습 문제 - 뉴스 클러스터링 (0) | 2020.10.13 |
프로그래머스 연습 문제 - 스킬트리 (0) | 2020.10.12 |