📖 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
💡 풀이 방식
• 피타고라스의 정리
: 각 x좌표에 대해 최대 y좌표값을 구한다. (O(N))
[원의 방정식]
x^2 + y^2 <= d^2 인 (x,y) 조합 찾기 (단, x>=0, y>=0)
💥 유의사항
k와 d의 크기가 크므로, O(N^2)하면 터지므로 한 번에 탐색(O(n))하고 끝내게 하자,,
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
|
class Solution {
public long solution(long k, long d) { // k, long형으로
long answer = 0;
for(long x = 0; x <= d; x += k){ // x좌표를 k 배수만큼 증가시키기
long y = (long) Math.sqrt(d*d - x*x); // [피타고라스 정리] x좌표에 대한 최대 y좌표값
answer += y / k + 1; // 0~y 최대치 정수에서 k 배수인 숫자가 몇 개인지 확인 (0좌표 포함시켜야 하므로 +1)
}
return answer;
}
}
|
cs |
➕ 다른 풀이 방식
- int형 형 변환은 이렇게,,
[pro] 프로그래머스 level2 140107 점 찍기 (Java) - 시뮬레이션
[문제] https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이
stritegdc.tistory.com
💦 어려웠던 점
- 문제의 의도를 제대로 파악하지 못 해서 피타고라스의 정리 사용할 생각을 하지 못 했다...
- 자바 형 변환에 조심해요,,,
🧐 새로 알게 된 내용
- 피타고라스의 정리 활용할 아이디어
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 풀이 참고
프로그래머스 - 점 찍기(Java)
구현 문제입니다. 문제를 요약하면, 거리가 d 이하인 x, y좌표 정수의 개수를 구하는 문제입니다. 단, 각 좌표는 k 배수입니다. 익숙한 그림 아닌가요? 네, 피타고라스 정리를 이용하면 아주 쉽게
ksb-dev.tistory.com
[JAVA] LV2. 점 찍기
[점 찍기] (https://school.programmers.co.kr/learn/courses/30/lessons/140107?language=java) [문제설명] 좌표평면을 좋아하는 진수는 x축과 y축이 직교하는 2차원 좌표평면에 점을 찍으면서 놀고 있습니다
velog.io
[프로그래머스] 점 찍기 (Java)
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방
maicoding.tistory.com
(어떻게 이런 생각을 하시지,,? 내 뇌는 ㅎㅎㅎㅎ)
프로그래머스 점찍기 (Java)
문제 링크회사 생활을 즐긴다고 글을 정말 오랜만에 쓰는 것 같다머릿속에서 문제를 그려봤는데, 반지름 d인 원이 있음1.1 x,y축 포함 "1사분면에서 점이 얼마나 찍히는가?"를 묻더라좌표평면위의
velog.io
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level2] 혼자서 하는 틱택토 (JAVA) (0) | 2024.03.14 |
---|---|
[프로그래머스/Level2] 두 원 사이의 정수 쌍 (JAVA) (0) | 2024.03.13 |
[프로그래머스/Level2] 디펜스 게임 (JAVA) (0) | 2024.03.11 |
[프로그래머스/Level3] 입국 심사 (JAVA) (0) | 2024.03.11 |
[프로그래머스/Level3] 파괴되지 않은 건물 (JAVA) (0) | 2024.03.08 |