728x90

문제

N이 주어질 때, 원점을 중심으로 반지름이 N인 원 안에 포함되는 격자점($x, y$ 좌표가 모두 정수인 점)의 개수를 구하는 프로그램을 작성하라.

다시 말하자면, $x^{2}+y^{2}<=N^{2}$인 격자점의 개수를 구하는 프로그램을 작성하라.

 

 

입력

첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 하나의 정수 N(1<=N<=200)이 주어진다.

 

출력

각 테스트 케이스마다 반지름이 N인 원 안에 포함되는 격자점의 개수를 출력한다.

 

예제

[입력] [출력]
3
1
10
100
#1 5
#2 317
#3 31417

 

문제 해결 방법

  • @-x@부터 @x@, @-y@부터 @y@까지 숫자를 순회하면서 $x^{2} + y^{2} ≤ N^{2}$을 만족할 경우 카운팅 해주는 브루트 포스(Brute Force) 방식으로 문제를 해결하였다.

 

코드

T = int(input())

for test_case in range(1, 1 + T):
    N = int(input())
    
    count = 0
    for x in range(-N, N + 1):
        for y in range(-N, N + 1):
            if pow(x, 2) + pow(y, 2) <= pow(N, 2):
                count += 1
    
    print(f"#{test_case} {count}")

 

참고

  • 난이도: D3
728x90