😎풀이

  1. x, y의 시작위치와 반지름을 입력받음
  2. 사각형 좌표 기준 x, y 생성
    2-1. x는 0의 좌표에서 지름중 하나의 점을 선택하고, x의 시작 위치를 기준으로 재조정
    2-2. y 동일
  3. 두 점이, 원의 방정식 x점 - x시작점의 제곱 + y점 - y시작점의 제곱 <= 반지름의 제곱을 만족하는지 검증하여 반환
class Solution {
    private radius: number
    private xCenter: number
    private yCenter: number
    constructor(radius: number, x_center: number, y_center: number) {
        this.radius = radius
        this.xCenter = x_center
        this.yCenter = y_center
    }

    randPoint(): number[] {
        while(true) {
            const x = Math.random() * this.radius * 2 - this.radius + this.xCenter
            const y = Math.random() * this.radius * 2 - this.radius + this.yCenter
            if(Math.pow(x - this.xCenter, 2) + Math.pow(y - this.yCenter, 2) <= Math.pow(this.radius, 2)) {
                return [x, y]
            }
        }
    }
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글