[프로그래머스 level2] 멀쩡한 사각형

김예지·2021년 10월 20일
0

문제

https://programmers.co.kr/learn/courses/30/lessons/62048


문제 풀이

코드

function solution(w, h) {
    let L=0;
    
    //최대 공약수 구하기 
    let num=w<h? w:h; 
    for(let i=1; i<=num; i++){
        if(w%i===0 && h%i===0) L=i;
    }
    
    //L===0이면 최대공약수가 없는 경우
    return (L===0)? (w*h)-(w+h-1):(w*h)-(w+h-L);
}

이 문제는 감이 안와서 공식을 검색해보니, 공식이 존재하는 문제였다! 검색을 통해 공식의 도출 과정이 잘 정리된 사이트를 찾았다.(아니 근데 이게 초5 경시대회 문제라고요...? 수포자로서는 이해할 수 없는 문제)
아무튼 대각선으로 인해 없어지는 사각형갯수 공식을 쏙 빼오면,

  • (w, h의 최대공약수가 존재하지 않을 때) w+h-1
  • (w, h의 최대공약수가 존재할 때) w+h-최대공약수

이 공식을 활용해서 문제를 풀 수 있다.


참고 자료

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

1개의 댓글

comment-user-thumbnail
2021년 10월 27일

10/27

답글 달기