티스토리 뷰
728x90
SMALL
function solution(w, h) {
return w*h-(w+h-gcd(w,h));
}
function gcd(n1, n2) {
return n1%n2 ? gcd(n2, n1%n2) : n2;
}
이건그냥 수학문제다... 최대공약수 구하는 것빼고는
w와 h가 공약수가 있으면 문제를 w와 h를 공약수로 나눈 w'과 h'으로 나눌 수 있다.
w'와 h'이 서로소일 때
대각선은 끝 꼭지점에 도달하기전 w'-1개의 세로선과 h'-1개의 가로선을 지나고 지날때마다 새로운 정사각형이 추가 된다. 그래서 첫 정사각형을 포함 1 + (w'-1) + (h'-1) = w' + h' - 1개의 정사각형을 지나게 되고 최대공약수를 다시 곱해주면 w + h - gcd(w,h)
728x90
LIST
'코딩테스트' 카테고리의 다른 글
코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT > [1차] 뉴스 클러스터링 (0) | 2020.08.28 |
---|---|
코딩테스트 연습 > 2017 팁스타운 > 예상 대진표 (0) | 2020.08.27 |
코딩테스트 연습 > 2017 팁스타운 > 짝지어 제거하기 (0) | 2020.08.25 |
코딩테스트 연습 > 연습문제 > N개의 최소공배수 (0) | 2020.08.24 |
코딩테스트 연습 > 해시 > 위장 (0) | 2020.08.20 |
댓글
공지사항