[Programmers] 멀쩡한 사각형(Lv.2)

Alice·2023년 8월 5일
0

풀이 소요시간 : 측정안함


일차 함수를 떠올리며 문제를 풀었다. O(N) 으로 풀이 가능하다.
일전에 풀이했던 두 원사이의 점 갯수 구하기 문제와 비슷한 풀이 방법이였다.

static_cast 를 적극 활용하자

long long Total = static_cast<long long>(w) * h;

평소에 타입 캐스팅을 할 때 (long long) 같은 괄호식 타입캐스팅을 활용했는데 위의 방식이 구현상 깔끔한 것 같아 적극 활용하기로 했다.


전체 코드

#include <algorithm>
#include <cmath>

using namespace std;

long long solution(int w,int h) {
    
    long long Cnt = 0;
    long long Total = static_cast<long long>(w) * h;
    
    for(int px = 0; px < w; px++)
    {
        int nx = px + 1;
        int py =  ceil(static_cast<double>(-h) * px / w + h); 
        int ny =  floor(static_cast<double>(-h) * nx / w + h); 
        Cnt += static_cast<long long>(py - ny);
    }
    return Total - Cnt;
}
profile
SSAFY 11th

0개의 댓글