[프로그래머스] 멀쩡한 사각형 (JAVA/자바)
풀이
처음보는 신선한 문제였다. 얼만큼의 영역을 못쓰게 되는지 어떻게 판단해야하는지 고민을 많이 했는데, 좌표 위 그래프로 생각하면 쉽게 풀 수 있다.
위 그림처럼 좌우 반전 시킨 후 보면, 그래프처럼 보인다.
- 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억인데 왜지? 스터디 후 해답을 얻으면 업데이트 해야지!)
참고 사이트
딱히 없음
Author And Source
이 문제에 관하여([프로그래머스] 멀쩡한 사각형 (JAVA/자바)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yanghl98/프로그래머스-멀쩡한-사각형-JAVA자바저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)