알고리즘/프로그래머스 문제 풀이
[PG] 멀쩡한 사각형
바켱서
2021. 10. 9. 20:00
https://programmers.co.kr/learn/courses/30/lessons/62048
접근 방법
먼저 문제를 봤을 때 우리가 중학교 때 보았던 y = ax + b; 이 구조로 보게 되었다.
x의 값에 따라서 걸치게 되는 부분이 몇개인지를 보려면
Math.ceil( 올림 ) , Math.floor ( 버림 ) 을 이용하여 몇 개가 걸쳐지는지 보면 된다.
주의 사항
- 자료구조형 ( int 의 범위 & long의 범위를 생각해야한다. )
Need Know
- 구현
전체 코드 ( Java )
class Solution {
public long solution(int w, int h) {
long answer = (long)w*h;
// 가로 세로가 같은 경우 (정사각형)
if(w==h){
answer -= w;
}else{
for(double i=1; i<=w; i++){
answer -= (Math.ceil((double)h*i/w)-Math.floor((double)h*(i-1)/w));
}
}
return answer;
}
}