728x90
728x90

문제

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

다시 말하자면, x2+y2<=N2인 격자점의 개수를 구하는 프로그램을 작성하라.

 

 

입력

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

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

 

출력

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

 

예제

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

 

문제 해결 방법

  • -x부터 x, -y부터 y까지 숫자를 순회하면서 x2+y2N2을 만족할 경우 카운팅 해주는 브루트 포스(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
728x90

문제입력출력예제문제 해결 방법코드참고