카테고리 없음
[프로그래머스] 점 찍기 (C++)
라이언납시오
2023. 8. 8. 17:34
728x90
반응형
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/140107
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
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
반응형