1. ๋ฌธ์ ์์ฝ
์ขํ ํ๋ฉด์ ์ข์ํ๋ ์ง์๋ x์ถ๊ณผ y์ถ์ด ์ง๊ตํ๋ 2์ฐจ์ ์ขํํ๋ฉด์ ์ ์ ์ฐ์ผ๋ฉด์ ๋๊ณ ์์
์ง์๋ ๋ ์์ ์ ์ k,d๊ฐ ์ฃผ์ด์ง ๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์ ์ฐ์ผ๋ ค ํจ
์์ (0,0)์ผ๋ก๋ถํฐ x์ถ ๋ฐฉํฅ์ผ๋ก a*k(a=0,1,2,3...), y์ถ ๋ฐฉํฅ์ผ๋ก b*k(b=0,1,2,3...)๋งํผ ๋จ์ด์ง ์์น์ ์ ์ ์ฐ์
์์ ๊ณผ ๊ฑฐ๋ฆฌ๊ฐ d๋ฅผ ๋๋ ์์น์๋ ์ ์ ์ฐ์ง ์์ -> ๋ฐ์ง๋ฆ์ด d์ธ ์ ์์์ ๋ชจ๋ ๊ฒ์ ํด๊ฒฐํจ
k๊ฐ 2, d๊ฐ 4์ธ ๊ฒฝ์ฐ์๋
(0,0),(0,2),(0,4),(2,0),(2,2),(4,0) ์์น์ ์ ์ ์ฐ์ด ์ด 6๊ฐ์ ์ ์ ์ฐ์
์ ์ k์ ์์ ๊ณผ์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ํ๋ด๋ ์ ์ d๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์ด ์ด ๋ช ๊ฐ ์ฐํ๋์ง returnํ๋ solution ํจ์ ์์ฑ
2. ์ฝ๋
#include <string>
#include <vector>
#include <cmath>
using namespace std;
long long solution(int k, int d) {
long long answer = 0;
for(long long i=0;i<=d;i+=k){
int y = sqrt(pow(d,2)-pow(i,2));
answer+=y/(long long)k+1;
}
return answer;
}
3. ํด์ค
์ด ๋ฌธ์ ์์ ๊ฐ์ฅ ์ฃผ์ํด์ผํ ์ ์ long long ์ด๋ผ๋ ์๋ฃํ์ผ๋ก ๋ณํ์ธ ๊ฒ ๊ฐ๋ค
์์ ๊ณผ์ ๊ฑฐ๋ฆฌ๊ฐ d๋ฅผ ๋๋ ์์น์๋ ์ ์ ์ฐ์ง ์๋๋ค๋ ์ ์ ์กฐ๊ฑด์ ๋ฐ์ง๋ฆ์ด d์ธ ์ ์์ ๋ชจ๋ ์ ๋ค์ ์์นํ ์ ์๋ค๋ ๋ง๊ณผ ๊ฐ๋ค
x ์ถ์ ๋ฐฉํฅ์ผ๋ก๋ a*k, y ์ถ์ ๋ฐฉํฅ์ผ๋ก๋ b*k ๋งํผ ๋จ์ด์ง ์์น์ ์ ์ ์ฐ๋๋ค๊ณ ํ์ฌ์ k๋งํผ ์ฆ๊ฐํ๋ for.๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋๋ค
int y = sqrt(pow(d,2)-pow(i,2));
y์ ์ต๋๊ฐ์ ์์ ์ฝ๋๋ก ๊ตฌํ๊ณ , ํด๋น ์ต๋ y๊ฐ/k ๋ฅผ ํ๋ฉด ๊ทธ ์์ b*k๋ฅผ ๋ง์กฑํ๋ ๊ฐฏ์๋ฅผ ๊ตฌํ ์ ์๊ณ , 0์ธ๊ฒฝ์ฐ๋ฅผ ํฌํจํด์ผํ๊ธฐ ๋๋ฌธ์ +1์ ํด์ค๋ค
'์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ทค ๊ณ ๋ฅด๊ธฐ (0) | 2025.01.01 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํ ์ด๋ธ ํด์ ํจ์ (0) | 2024.12.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ง๋ฒ์ ์๋ฆฌ๋ฒ ์ดํฐ (0) | 2024.12.30 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ถ๋ ๊ฐ๊ธฐ (1) | 2024.01.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (1) | 2023.11.15 |