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

S_H_H·2023년 6월 16일
0

프로그래머스

목록 보기
13/15

프로그래머스 로고

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


문제 설명

문제 풀이

풀이 설명

두 원 사이에서 정수를 찾기 위해, 피타고라스 공식을 사용
0,0 을 기준해서 X|Y가 양수만 계산 후 동일한 면이 4개가 있음으로
나온 결과 값에 4를 곱해준다.

코드 작성

        public long solution(int r1, int r2) {
            long count_4 = 0;
            long r1_pow = (long) Math.pow(r1, 2);
            long r2_pow = (long) Math.pow(r2, 2);

            int x = 1;
            while(x < r2){
                long x_pow = (long) Math.pow(x, 2);
                double r1_y = Math.sqrt(r1_pow - x_pow);
                double r2_y = Math.sqrt(r2_pow - x_pow);

                if(x < r1 && r1_y % 1 == 0) r1_y--;
                count_4 += (int) r2_y - (int) r1_y;

                x++;
            }

            long answer = count_4 + r2 - r1 +1;
            answer *= 4;

            System.out.println("answer = " + answer);

            return answer;
        }
profile
LEVEL UP

0개의 댓글