알고리즘/programmers

[Programmers] 두 원 사이의 정수 쌍

꾸준함. 2023. 8. 30. 21:29

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/181187

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

수학적인 사고능력이 필요한 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. 원은 상하좌우 대칭이므로 (1 사분면 내 조건에 맞는 좌표들의 개수) * 4를 하면 정답이 나옵니다.

2. 따라서 [1, r2] 구간의 좌표들을 구하는데 이때 r1, r2, 그리고 x의 값이 연산 중 int 범위를 초과하며 오버플로우가 발생할 수 있으므로 x * 1LL * x와 같이 처리하여 int 범위를 초과하더라도 연산값이 잘 저장되도록 처리해 줍니다.

2.1 minY와 maxY는 피타고라스의 정리를 연상하면 쉽게 구할 수 있습니다.

3. 1번에서 설명했듯이 2번에서 구한 값에 4를 곱한 뒤 반환해 줍니다.

 

 

 

개발환경: Programmers IDE

지적, 조언, 질문 환영합니다! 질문 남겨주세요~

반응형