FrontEnd/프로그래머스

[JS] 점 찍기

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