PGS / ๋น๊ตฌ ์ฐ์ต / Python
Updated:
ํ๋ฉด์
โ ๊ฐ๋ฅํ ์ผ์ด์ค๋ โ์โ, โ์ผโ, โ์คโ, โ์๋โ ๋ฒฝ์ ํ๊ธฐ๋ ๊ฒฝ์ฐ๋ก ์ด ๋ค ๊ฐ์ง์ด๋ค.
โ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ ๋ ๋์นญ์ ์ด์ฉํ๋ค. ์๋ฅผ ๋ค์ด ์์ชฝ ๋ฒฝ์ ๋ง์ถ๋ ๊ฒฝ์ฐ, ํ๊ฒ๊ณต์ ์์ชฝ ๋ฒฝ์ ๊ธฐ์ค์ผ๋ก ๋์นญ์ํจ๋ค. ๋์นญ ์ํจ ์ ๊ณผ ๋จธ์ฑ์ด๊ฐ ์น ๊ณต ์ฌ์ด์ ๊ฑฐ๋ฆฌ์ ๊ณฑ์ ๊ตฌํ๋ฉด ๊ทธ๊ฒ ๊ณง ๋ต์ด ๋๋ค.
โ
๋จธ์ฑ์ด๊ฐ ์น ๊ณต์ด ๋ฒฝ์ ๋ง๊ธฐ ์ ์ ํ๊ฒ๊ณต์ ๋ง์ถ๋ ์ํฉ์ ๋ํด ์์ธ ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค.
code โจ๏ธ
import math
def dist(x1, y1, x2, y2):
return (x1-x2)**2 + (y1-y2)**2
def solution(m, n, startX, startY, balls):
answer = []
for (x, y) in balls:
dists = []
# ์
if not (startX == x and y >= startY):
y_ = n + (n - y)
dists.append(dist(startX, startY, x, y_))
# ์๋
if not (startX == x and y < startY):
y_ = -y
dists.append(dist(startX, startY, x, y_))
# ์ผ
if not (startY == y and x <= startX):
x_ = -x
dists.append(dist(startX, startY, x_, y))
# ์ค
if not (startY == y and x > startX):
x_ = m + (m - x)
dists.append(dist(startX, startY, x_, y))
answer.append(min(dists))
return answer
ํ๊ณ ๋์๐๐
๋ณต์กํ๊ฒ ์๊ฐ๋ง๊ณ ๊ฐ๋ฅํ ์ผ์ด์ค๋ฅผ ๋๋ ์ ์๊ฐํ๋ฉด ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์๋ค.
์ด๋ ์์ธ ์ฒ๋ฆฌ ํด์ค์ผ ํ๋ ์ํฉ์ ํญ์ ๊ณ ๋ คํ ๊ฒ.
Leave a comment