코테/프로그래머스

[프로그래머스/Level2] 두 원 사이의 정수 쌍 (JAVA)

imname1am 2024. 3. 13. 22:31
반응형

두 원,,, (광고 아님)

📖 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

💡  풀이 방식

• 원의 방정식 (피타고라스 정리)

x^2 + y^2 = d^2

 

큰 원에서 작은 원을 빼면 두 원 사이에 존재하는 점의 개수를 찾을 수 있다.

 - 작은 원 : 현재 위치보다 값이 갯수에 포함되므로 올림 처리

 - 큰 원    : 현재 위치보다 작은 값이 갯수에 포함되므로 내림 처리

 

이건 4분의 1, 제1사분면만 진행한 것이므로 구한 answer 에 *4를 해야 1~4사분면까지 모두 구한 것이다.

 

 

 

💥 유의사항

원의 길이를 0부터 구하면 축 경계에서 중복이 발생하므로, 1부터 큰 원의 반지름 r2까지 범위를 설정한다.

 

 

🔺 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
    public long solution(int r1, int r2) {
        long answer = 0;
        
        for(int x = 1 ; x <= r2 ; x++) {    // 0부터 탐색하면 경계값 중복 발생하므로 1부터 시작
            long minH = (long)Math.ceil(Math.sqrt(1.0*r1*r1 - 1.0*x*x));    // 작은 원 : 올림 처리
            long maxH = (long)Math.floor(Math.sqrt(1.0*r2*r2 - 1.0*x*x));   // 큰 원  : 내림 처리
            
            answer += (maxH - minH +1); // 큰 값에서 작은 값 빼기
        }
        
        return answer*4;
    }
}
cs

 

 

➕ 다른 풀이 방식

조금 다르다.

 

[프로그래머스] 두 원 사이의 정수 쌍 [자바]

https://taehoung0102.tistory.com/299 [프로그래머스,java] 두 원 사이의 정수 쌍 그냥 원 사이의 정수 쌍 구하는 문제가 2레벨에 있었던거같은데, 두 원 사이의 정수쌍을 구하는 문제가 나왔다.. (이게 같은

tu-tr.tistory.com


💦 어려웠던 점

- 원의 범위 설정을 어디부터 어디까지 해야할지

- 겹치는 부분을 어떻게 처리해야할지 -> 큰 원 범위에서 작은 원 범위 구한 값을 빼주면 되는 것이었다.

 

 

🧐 새로 알게 된 내용

- 피타고라스 식 활용할 생각

- 일단 제1사분면에서 생각하고, *4하자,,

 

 

1회독 2회독 3회독 4회독 5회독
V        

(참고)

✔ 풀이 참조

 

[프로그래머스] 두 원 사이의 정수 쌍

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181187이 문제는 원의 방정식을 이용하면 풀 수 있습니다.원의 방정식은 x^2 + y^2 = r^2입니다. 이 때 원의 방정식에서 특정 x

velog.io

 

  그림 설명👍👍

 

[프로그래머스] - 두 원 사이의 정수 쌍 (Java & JavaScript)

두 원 사이의 정수 쌍 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

sasca37.tistory.com

 

  비슷한 문제 : 프로그래스의 점 찍기 문제

 

[프로그래머스/Level2] 점 찍기 (JAVA)

📖 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

bono039.tistory.com

 

반응형