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;
}
}
'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
(Java)프로그래머스 코딩테스트 연습 - 2017 카카오코드 본선 - 단체사진 찍기 (0) | 2020.11.18 |
---|---|
(Java)프로그래머스 코딩테스트 연습 - 2020 KAKAO BLIND RECRUITMENT - 괄호 변환 (0) | 2020.11.16 |
(Java)프로그래머스 코딩테스트 연습 - 2020 KAKAO BLIND RECRUITMENT - 문자열 압축 (0) | 2020.11.13 |
(Java)프로그래머스 코딩테스트 연습 - 스택/큐 - 프린터 (0) | 2020.11.13 |
(Java)프로그래머스 코딩테스트 연습 - 스택/큐 - 다리를 지나는 트럭 (0) | 2020.11.12 |