어흥
[프로그래머스] 점 찍기 (C++) 본문
728x90
반응형
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/140107
1. 주의할 점
- 피타고라스의 a*a + b*b = c*c를 이용해서 해결하는데, 이때 두 수의 곱이 int를 벗어날 수 있으므로 long long으로 변환해서 계산한다
2. 구현
- 한 변의 크기를 K의 배수로 설정하고, 다른 변의 제곱을 Dist로 표현한다. 이때 다른 변 또한 0이 될 수 있으므로 +1을 수행한다
#include <string>
#include <vector>
#include <math.h>
using namespace std;
long long solution(int k, int d) {
long long answer = 0;
for(int i=0;i<=d;i+=k){
long long dist = (long long)d*d-(long long)i*i;
answer += floor(sqrt(dist) / k) + 1;
}
return answer;
}
728x90
반응형
Comments