문제
좌표 평면에 조건에 맞는 점이 몇개가 찍히는지 리턴하는 문제이다.
조건
- 원점(0,0) 으로부터 x축 방향으로a * k(a= 0, 1, 2, 3, ...) , y축 방향으로 b*k(b = 0,1,2,3,...) 만큼 떨어진 위치에 점을 찍는다.
- 원점과의 거리가 d를 넘는 위치에는 점을 찍지 않는다.
- 1 <= k <= 1,000,000
- 1 <= d <= 1,000,000
내 풀이
원은 한 점에서 같은 거리만큼 떨어진 점들의 집합이다.
이를 이용해서 x좌표에서 거리가 d인 y 좌표의 값을 구하여 총 점의 개수를 구하였다.
function solution(k, d) {
let answer = 0
const getMaxY = (x , r) => {
return Math.sqrt(r**2 - x**2)
}
for(let i = 0 ; i <= d ; i+=k){
const maxY = getMaxY(i , d)
answer += parseInt(maxY / k) + 1
}
return answer;
}
출처 : 프로그래머스
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/140107
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'알고리즘' 카테고리의 다른 글
프로그래머스 - 디펜스게임 (1) | 2025.01.13 |
---|---|
프로그래머스 - 문자열 압축 (0) | 2025.01.12 |
프로그래머스- 우박수열 정적분 (1) | 2025.01.07 |
프로그래머스 - 가장 큰 정사각형 찾기 (1) | 2025.01.05 |
프로그래머스 - 수식최대화 (0) | 2025.01.01 |