728x90
이전에 풀어보았던 원 문제와 같은 방식으로 해결할 수 있었다.
원안의 점을 수식으로 구할때, x축을 기준으로 k씩 증가시키면서 그 위로 찍을수 있는 점들을 세면 된다.
k가 0,2,4 일때 찍을 수 있는 점은
(0,0) (0,2) (0,4) (0,6)
(2,0) (2,2)
(4,0)
가 나오게 된다. 즉 각각 4개 2개 1개가 나온다.
이때 k의 x값과 대각선 값을 알기에 최대로 나올 수 있는 세로값을 피타고라스 정리에 의해서 구할 수 있고, 이를 활용해서 개수를 구해주면 된다.
function solution(k, d) {
let ret = 0
for ( let i = 0 ; i <= d ; i+= k){
ret += ~~((d**2 - i**2)**0.5 / k) + 1
}
return ret
}
728x90
'FrontEnd > 프로그래머스' 카테고리의 다른 글
[JS] 숫자 카드 나누기 (0) | 2023.06.03 |
---|---|
[JS] 귤 고르기 (0) | 2023.06.02 |
[JS] 디펜스 게임 (0) | 2023.06.01 |
[JS] 테이블 해시 함수 (0) | 2023.05.31 |
[JS] 유사 칸토어 비트열 (0) | 2023.05.30 |