-
[프로그래머스] 두 원 사이의 정수 쌍 c++Coding Test/programmers 2023. 7. 1. 15:46728x90
문제 설명
x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.
※ 각 원 위의 점도 포함하여 셉니다.제한 사항
- 1 ≤ r1 < r2 ≤ 1,000,000
입출력 예
r1 r2 result 2 3 20 풀이
#include <string> #include <vector> #include <algorithm> #include <cmath> using namespace std; long long solution(int r1, int r2) { long long answer = 0; for(int i = 1 ; i < r2; i++){ int c1 = 0, c2 = 0; c1 = (int)floor(sqrt(pow(r2, 2) - pow(i, 2))); if(i < r1){ c2 = (int)ceil(sqrt(pow(r1, 2) - pow(i, 2))); } else{ c2 = 1; } answer += (c1 - c2 + 1); } return 4 * (answer + r2 - r1 + 1); }
728x90'Coding Test > programmers' 카테고리의 다른 글
[프로그래머스] 추억 점수 c++ (0) 2023.09.07 [프로그래머스] 달리기 경주 c++ (1) 2023.09.07 [프로그래머스] 연속된 부분 수열의 합 Java, c++, python (0) 2023.06.28 [프로그래머스] 요격시스템 c++, Java, python (0) 2023.06.26 [프로그래머스] 여행경로 c++ (0) 2023.05.23