코테/프로그래머스

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

imname1am 2024. 3. 13. 18:44
반응형

📖 문제

 

프로그래머스

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

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*- 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

 

반응형