-
728x90
[ 풀이 방법 ]
- 직선을 그리는 일차 방정식(y = ax)를 이용하여 수식을 만든다.
y = x * h / w
- 기울기인 h / w를 먼저 계산하게 되면, 소수점을 정확히 구할 수는 없기 때문에 값이 불완전해져
6번 테스트 케이스가 틀린다.ㅠㅠ
=> x를 먼저 h와 곱한 후, w로 나누자- 1부터 w전까지의 정수를 방정식에 대입하여, 온전한 정사각형 개수를 센다.
위에서 구한 y = i * h / w 에 1 ~ (w-1)의 값을 대입해준다.
y의 값을 내림했을때의 값 = 온전한 사각형의 크기- 위에서 구한 값들의 합이 '1*1 정사각형의 크기'이다.
[ 전체 코드 ]
class Solution { public long solution(int w, int h) { long answer = 0; // 일차방정식 y = ax 이용 for (long i = 1; i < w; i++) answer += Math.floor(h * i / (double) w); return answer * 2; } }
코드 질문이나 이상한점은
댓글 부탁드려요 :)'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[level2] 프로그래머스 - 124 나라의 숫자 (2) 2021.09.12 [level2] 프로그래머스 - 순위 검색(JAVA) (0) 2021.09.12 [level2] 프로그래머스 - 튜플(JAVA) (0) 2021.09.10 [level2] 프로그래머스 - 수식 최대화(JAVA) (0) 2021.09.10 [level2] 프로그래머스 - [1차] 뉴스 클러스터링(JAVA) (0) 2021.09.09 댓글