ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 멀쩡한 사각형 C++
    프로그래머스(Programmers) 2021. 12. 17. 00:19
    반응형

    문제설명

    제한사항

    • W, H : 1억 이하의 자연수

    입출력 예

    W                                                       H                                                                 result

    8 12 80

    입출력 예 설명

    입출력 예 #1
    가로가 8, 세로가 12인 직사각형을 대각선 방향으로 자르면 총 16개 정사각형을 사용할 수 없게 됩니다. 원래 직사각형에서는 96개의 정사각형을 만들 수 있었으므로, 96 - 16 = 80 을 반환합니다.

     

     

     

    => 가려지는 사각형들은 그룹핑을 할 수 있습니다. 

    => 가려지는 사각형들의 무리는 W와 H의 최대공약수의 갯수만큼 있습니다. 

    => 작은사각형무리에서 지워지는 사각형의 갯수는  X+Y-1입니다. (X:W를 최대공약수로 나눈수 Y:H를 최대공약수로 나눈수)

    => 나머지는 아래의 풀이를 보면 됩니다. 

     

     

     

    #include <algorithm>
    #include <vector> 
    #include <iostream>
    
    using namespace std;
    int gcd(long long a, long long b)
    {
        long long c;
        while(b!=0)
        {
            c= a%b;
            a=b;
            b=c;
        }
        return a;
    }
    long long solution(int w,int h) {
        long long answer = 1;
        answer =(long)w * (long)h;
        answer = answer -(w+h-gcd(w, h));
        
        return answer;
    }

     

     

    반응형

    '프로그래머스(Programmers)' 카테고리의 다른 글

    카카오프렌즈 컬러링 북 C++  (0) 2021.12.28
    더 맵게 C++  (0) 2021.12.23
    내적 C++  (0) 2021.12.15
    단체사진 찍기 C++  (0) 2021.12.15
    크레인 인형뽑기 게임  (0) 2021.12.14

    댓글

Designed by Who.