class Solution {
public long solution(int k, int d) {
long answer = 0;
answer = ((d/k) * 2);
//d : 4 / k : 2 -> 2 * 2 = 4 서로 0일때 개수 - 0 2, 0 4 , 2 0 , 4 0
double pow = Math.pow(d,2); //제곱
//System.out.println("제곱" + pow);
for(int a = 1; a*k <= d; a++){
int num = a * k;
answer += (int) Math.sqrt(pow-Math.pow(num, 2)) / k;
//System.out.println("제곱" + (int) Math.sqrt(pow-Math.pow(num, 2)));
}
answer = answer+1; //원점도 더해줘야 함
return answer;
}
}
와 똑똑박사 ↓
class Solution {
public long solution(int k, int d) {
long cnt = 0;
for(long i =0; i<=d; i+=k){
int maxY=(int)Math.sqrt(Math.pow(d,2) - Math.pow(i,2));
cnt += (long)(maxY / k) + 1;
} return cnt;
}
}
뭔 제곱근이랑 뭘 열심히 만들었는데 원점 빼놓고 해서 머리 아파하다가
아...! +1! 해서 진행한 코드... (-.-)였는데 안 복잡하게 짤 수도 있구만...
class Solution {
public static long solution(int k, int d) {
long answer = 0;
long dSquare = (long) d *d;
for(long i=0; i<=d; i=i+k){;
answer+= (long) Math.sqrt(dSquare-i*i)/k+1;
}
return answer;
}
}
Math 함수는 알지만...★
댓글
댓글 쓰기