📖 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
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
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level2] 테이블 해시 함수 (JAVA) (0) | 2024.03.16 |
---|---|
[프로그래머스/Level2] 혼자서 하는 틱택토 (JAVA) (0) | 2024.03.14 |
[프로그래머스/Level2] 점 찍기 (JAVA) (0) | 2024.03.13 |
[프로그래머스/Level2] 디펜스 게임 (JAVA) (0) | 2024.03.11 |
[프로그래머스/Level3] 입국 심사 (JAVA) (0) | 2024.03.11 |