해당 문제를 처음에는 기울기를 통해 문제를 풀려고 했었습니다. 예를 들어 예시와 같은 w = 8,h = 12 인 경우에 기울기를 구하면 1.5라는 값이 나왔고, 그림을 그려보니 기울기의 올림 값을 w 와 곱한 갯수가 빠진 것을 알 수 있었습니다. 간단하게 이렇게 문제를 풀어보니, 원하는 결과가 나오지 않았습니다. 예외 케이스를 찾아보니 w = 3, h = 5인 경우가 예외 상황인걸 알 수 있었습니다. 이런식으로 찾다 보니 최종적으로 다음과 같은 결과를 얻을 수 있었습니다.
public long solution(int w, int h) {
long count = 0;
for (int x = 0; x < w; x++) {
count += Math.ceil((double) h * (x + 1) / w) - Math.floor((double) h * x / w);
}
return (long) h * w - count;
}
'정리 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 124 나라의 숫자 (0) | 2022.04.06 |
---|---|
프로그래머스 - 폰켓몬 (0) | 2022.04.05 |
프로그래머스 - 오픈채팅방 (0) | 2022.03.31 |
프로그래머스 - 문자열압축 (0) | 2022.03.30 |
프로그래머스 - 크레인 인형뽑기 (0) | 2022.03.28 |
댓글