알고리즘🅰/프로그래머스

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

개발조각 2022. 3. 27. 22:07
728x90
반응형

 

이번 문제는 공식을 알면 쉽게 구할 수 있는 문제입니다.

열심히 풀었는데 정확성 테스트에서 통과 아닌 게 많아서

질문하기 들어가서 보니까 이게 쓰여져 있더라고요.

w * h - (w+h-최대공약수)

이게 핵심 입니다.

저는 최대공약수를 구하면 되겠다! 해서 구하긴 했지만 이런 공식까지는 생각 못했거든요...

언제쯤 질문하기 안 보고 문제 풀 수 있을까요...😂

 

여기서 최대공약수 푸는 방법은

이전에 [프로그래머스] 최대공약수와 최소공배수에서 나와서

밑에 링크로 남겨두겠습니다. 👇

https://development-piece.tistory.com/37

 

[프로그래머스] 최대공약수와 최소공배수

초등학교 때 배운 최대공약수와 최소공배수를 코드로 쓰라니까 엄청 당황스럽네요. 어떻게 쓸지 막막해서... 검색해 봤더니 "유클리드 호제법"이라는 게 있더라고요. 설명을 아무리 읽어봐도 이

development-piece.tistory.com

 

그리고 테스트 케이스 추가하기 에서 아래 케이스를 추가하시면 좋을 것 같아요.

w=2; h=8; result=8;
w=4; h=4; result=12;
w=3; h=8; result=14;
w=7; h=5; result=24;
w=3; h=4; result=6;
w=5; h=3; result=8;
w=6; h=3; result=12;


해결방안

function solution(w, h) {
    let gcd = 1;
    for(let i=2; i<=w; i++){
        if(w%i===0 && h%i===0) gcd = i;
    }
    return w * h - (w+h-gcd);
}

 

이번 문제는

최대공약수, w * h - (w+h-최대공약수)

이 두 가지가 다라서 굳이 해결방안에 대한 설명은 안 하겠습니다.


여기까지 프로그래머스 멀쩡한 사각형 해결방안에 대해 설명해보았습니다.

728x90
반응형