[프로그래머스] 멀쩡한 사각형 (JAVA/자바)

·2021년 9월 30일
0

Algorithm

목록 보기
58/60

문제 링크


풀이

처음보는 신선한 문제였다. 얼만큼의 영역을 못쓰게 되는지 어떻게 판단해야하는지 고민을 많이 했는데, 좌표 위 그래프로 생각하면 쉽게 풀 수 있다.

위 그림처럼 좌우 반전 시킨 후 보면, 그래프처럼 보인다.

  • x가 0일때는 0,
  • 1일때는 1.5 -> 버리면 1,
  • 2일때는 3
  • 3일때는 4.5 -> 버리면 4
  • ...

이렇게 생각하면, 각각 더한 후 2배를 해주면 영역의 넓이가 나온다!

코드로 작성하면 다음과 같다. 풀고나니 너무 간단해서 힘빠졌던 문제,,


코드

public class Solution {


    public long solution(long w, long h) {
        long answer = 0;

        for (int i = 0; i < w; i++) {
//            answer += h / w * i;  // 이렇게하면 틀림
            answer += h * i / w;
        }

        return answer * 2;
    }

}

정리

난이도 : LEVEL 2

🤦‍♀️ 메모

  • 아직 해답을 못 얻었는데, solution 함수의 w와 h를 long으로 받아야만 통과가 된다. 예제 코드(?)에도 int로 되어있는데 왜 그런건지 잘 모르겠다..ㅠㅠ (w, h의 범위가 최대 1억인데 왜지? 스터디 후 해답을 얻으면 업데이트 해야지!)

참고 사이트

딱히 없음

profile
당근먹고 자라나는 개발자

0개의 댓글