알고리즘 공부/프로그래머스
(Java)프로그래머스 코딩테스트 연습 - Summer/Winter Coding(2019) - 멀쩡한 사각형
HRuler
2020. 11. 15. 12:00
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/62048#qna
코딩테스트 연습 - 멀쩡한 사각형
가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을
programmers.co.kr
2. 나의 풀이
class Solution {
public long solution(int w, int h) {
long answer = 0;
int w_copy = w;
int h_copy = h;
while(w_copy > 0) {
int temp = w_copy;
w_copy = h_copy % w_copy;
h_copy = temp;
}
answer = ((long)w * h) - w - h + h_copy;
return answer;
}
}
3. 다른 사람 풀이
import java.math.BigInteger;
public class Solution {
public long solution(int w, int h) {
long totalCount = (long) w * (long) h;
long diagonalCount = w + h - BigInteger.valueOf(w).gcd(BigInteger.valueOf(h)).longValue();
return totalCount - diagonalCount;
}
}