https://school.programmers.co.kr/learn/courses/30/lessons/140107
/**
* ## 이해
*
* 미지의 것: 점이 총 몇 개 찍히는지 구하라
* 자료
* - 원점(0, 0)으로부터 x축 방향으로 a*k(a = 0, 1, 2, 3 ...),
y축 방향으로 b*k(b = 0, 1, 2, 3 ...)만큼 떨어진 위치에 점을 찍습니다.
- 원점과 거리가 d를 넘는 위치에는 점을 찍지 않습니다.
* ## 계획
* - x값 마다 찍을 수 있는 최대 y 값을 구한다.
- 점을 찍을 수 있는 좌표를 구한다.
- 위에서 구한 최대 y값이 k로 나누어 떨어진다면 1을 더해준다. 그렇지 않으면 0을 더한다.
*
* ## 실행
*
* ## 반성
*
*/
const solution = (k, d) => {
let sum = 0;
for (let x = 0; x <= d; x += k) {
const y = (d ** 2 - x ** 2) ** 0.5;
sum += Math.ceil(y / k) + (y % k === 0 ? 1 : 0);
}
return sum;
}
test('solution', () => {
expect(solution(2, 4)).toEqual(6)
});
'코테연습' 카테고리의 다른 글
198. 이모티콘 할인행사 Javascript (0) | 2023.03.29 |
---|---|
197. 멀쩡한 사각형 Javascript (0) | 2023.03.29 |
195. 뒤에 있는 큰 수 찾기 Javascript (0) | 2023.03.24 |
194. 다리를 지나는 트럭 Javascript (0) | 2023.03.23 |
193. 파일명 정렬 Javascript (0) | 2023.03.22 |
댓글