728x90
programmers.co.kr/learn/courses/30/lessons/62048?language=java
문제 접근
1. 주어진 값들을 좌표평면에 위치시키고 w와 h을 x, y로 인식해서 1차함수로 해석한다.
2. 좌표 상에 y값의 위치에 따라 칸을 센다.
3. 대칭이기 때문에 값을 두배
느낀점
처음에는 정말 감이 안 잡혀서 고민을 많이 했다. 다른 분의 코드를 찾아봤을 때 최대공약수로 푸는 분이 많으셔서 이해해보려고 노력했지만 좌표평면에 대입하는 방법이 이해하기 더 쉬웠다. 하지만 덕분에 유클리드 알고리즘을 공부한 계기가 되었다.
코드
class Solution {
public long solution(int w,int h) {
long answer = 0;
for(int i = 0; i < w; i++)
answer += ((long)h * i) / (long)w;
return answer * 2;
}
}
'문제 풀이 > 프로그래머스 (Programmers)' 카테고리의 다른 글
[C++] 프로그래머스 : 키패드 누르기 (0) | 2021.09.13 |
---|---|
[C++] 프로그래머스 : 로또의 최고 순위와 최저 순위 (0) | 2021.07.01 |
[C++] 프로그래머스 : 완주하지 못한 선수 (0) | 2021.07.01 |
[C++] 프로그래머스 : 폰켓몬 (0) | 2021.06.24 |
[C++] 프로그래머스 : 소수 만들기 (LvL 1) (0) | 2021.05.24 |
댓글