ํ์ฌ ์งํ์ค์ธ ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋์ ๋ธ ๋ฌธ์ ์ด๋ค. ์ํ์ ์ธ ์๊ฐ์ด ๋ง์ด ํ์ํ ๊ฒ์ด๋ผ ์๊ฐ๋๋ ๋ฌธ์ ๋ฅผ ๊ณ ๋ฅด๊ณ ์ถ์๋ค.
- ์ ํ๊ธฐ์ ๋ ๊ฐ๋ ์์ ์ ํฌํจํ๋ฉฐ ๊ผญ์ง์ ์ด N๊ฐ์ธ ๋จ์๋ค๊ฐํ์ผ๋ก ๋ํ๋ผ ์ ์๋ค
- ์ ํ๊ธฐ์ ์์ ์ด
(0, 0)
๋ผ๊ณ ๋์์ ๋ ๋ค๊ฐํ ๋ ๊ฐ์ ๊ฐ ๊ผญ์ง์ ์ ์ ๋ ฅ์ผ๋ก ์ค๋ค. - ์ด๋, ๋ ๊ฐ์ ์์ทจ๊ฐ ์์ด ๋๋ ์ต์ ํ์ ๊ฐ๋๋ฅผ ๊ตฌํด ๋ณด์. ์ ํ๊ธฐ๋ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๋ค.
์ ๊ทผ
- ๋ค๊ฐํ์ ์ ์ด ํ๊ฐ๋ผ๋ฉด 360๋๋ฅผ ๋์์ผ ํ๋ค. (๋ํ๋ ์๋๊ณ , ๊ฐ๋ฅํ ์ ๋ ฅ๋ํ ์๋๊ธด ํ์ง๋ง)
- ๋ค๊ฐํ์ ์ ์ด ๋๊ฐ๋ผ๋ฉด?
- ๊ฐ์ฅ ๊ธด ์ ์ด ๋ฌด์์ธ์ง์ ๋ฐ๋ผ ๋ค๋ฅด๋ค
์ฌ๊ธฐ์ ๋ํ์ ๊ณ ๋ คํ์ง ์๊ณ ๊ฐ ๊ผญ์ง์ ๊ณผ ์์ ์ ์ด์ด์ค ๋ชจ์์ผ๋ก ์๊ฐํ๋ฉด ๋ฌธ์ ๋ ์ฌ์์ง๋ค.
- ๊ฐ์ฅ ๊ฑฐ๋ฆฌ๊ฐ ๋จผ ์ ๋ถ๋ค์ ๊ตฌํ๋ค.
- ๊ทธ ์ฌ์ด์ ๊ฐ๋ค์ ๊ตฌํ์ฌ ๊ฐ์ฅ ํฌ๊ธฐ๊ฐ ํฐ ๊ฐ์ ์ถ๋ ฅํ๋ค.
์ฝ๋
import math
n = int(input())
length = -1
angles = []
# 12์ ๋ฐฉํฅ์ผ๋ก๋ถํฐ์ ๊ฐ๋๋ฅผ ๊ตฌํ๋ค
def getAngle(y: int, x: int):
return math.degrees(math.atan2(y, x))
for _ in range(n):
x, y = map(int, input().split())
tmpLen = y * y + x * x
if tmpLen > length:
length = tmpLen
angles = [getAngle(y, x)]
elif tmpLen == length:
angles.append(getAngle(y, x))
angles.sort()
# ์ฌ์๊ฐ๋ค์ ๊ตฌํ๋ค
anglesEach = [
angles[i] - angles[i-1]
if angles[i] - angles[i-1] > 0
else angles[i] - angles[i-1] + 360
for i in range(len(angles))
]
print(max(anglesEach))
ํ๊ธฐ
- 0๋๋ฅผ ๊ณ ๋ คํด์ฃผ์ด์ผ ํ๋ค.
(๋ฌธ์ ์กฐ๊ฑด์์ ๊ฑธ๋ฌ์ง ์ค ์์๋ค๊ฐ ํ๋ ธ๋ค.)- 0๋์ธ ๊ฒฝ์ฐ๋ 360๋๋ฅผ ํ์ ํด ์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ 24๋ฒ์งธ ์ค์ ์กฐ๊ธ ์๋ดค๋ค.
- ๋ถ๋์์์ ์ถ๋ ฅ์ ์ํ๋ ๋ฌธ์ ๋ ์ ํธํ์ง ์์ง๋ง ์์ซ์ ์๋ 6์๋ฆฌ๊น์ง๋ผ๋ฉด ๋ณ๋ค๋ฅธ ์ฒ๋ฆฌ์์ด๋ ๊ฝค ์ ํํ ๊ฒ์ด๋ผ ์๊ฐํ๋๋ฐ ๋๋ค.
- ํ์ด์ฌ math์๋ ์๊ฐ๋ณด๋ค ์น์ ํ๊ฒ ํจ์๊ฐ ์ ๊ณต๋๋๊ตฌ๋