본문 바로가기
[프로그래머스]

프로그래머스 점 찍기 C++

by Hevton 2023. 9. 3.
반응형

 

처참히 패배했다. For문 두개를 돌리다가 실패했다. 당연한 결과였다.

 

한 방향만 먼저 구한 뒤에 x 2 를 하는 방법은 없아 고집했는데, 그런게 오히려 더 정답으로부터 멀어지게 만들었다.

 

 

다른 분의 풀이를 보고 풀게 되었다.

 

한쪽을 고정해놓고 = x = i

다른 좌표의 최댓값을 구한 다음에, 0을 포함하기 위해 + 1을 해준다.

#include <string>
#include <vector>
#include <cmath>

using namespace std;

long long solution(int k, int d) {
    long long answer = 0;
    
    // k의 배수
    for(long long i = 0; i <= d; i+=k) {
        
        long long maxY = sqrt((long long)d * d - (long long)i * i);
        
        answer += floor(maxY / k) + 1;
        
    }
    
    return answer;
}

 

못 풀었으니 하나 더 풀어야겠다.

반응형