๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
๐จ ๊ต์ ๊ตฌํ๊ธฐ -> ๋ฌธ์ ์์ ์ฃผ์ด์ง ๊ณต์์ผ๋ก ๋ชจ๋ ๊ต์ ์ ๊ตฌํ๋ค.
๐จ ๋ฐฐ์ด ํฌ๊ธฐ ์ ํ๊ธฐ -> x, y ์ ์ต๋ ์ต์๊ฐ์ผ๋ก
๐จ ๋ฐฐ์ด ๋ง๋ค๊ธฐ -> ๋ฐฐ์ด์ ๋ง๋ ๋ค.
๐จ ๋ณ ์ฐ๊ธฐ -> ์ ์ขํ๊ฐ (y_max - y, x - x_min) ์ธ์ง ํท๊ฐ๋ฆด ์ ์๋ค. ์ํ ์ขํ๋ ๋ฐฐ์ด๋ก ๋ํ๋ด๋ ์ขํ์ 0์ ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ ์ ํ๊ฒ ๋ฐ๊ฟ์ค์ผํ๋ค.
๐ป์์ค ์ฝ๋
def solution(line):
dot_list = []
for i in range(len(line)):
A, B, E = line[i]
for j in range(i + 1, len(line)):
C, D, F = line[j]
bunja = A * D - B * C
if int(bunja) == 0:
continue
x = (B * F - E * D) / bunja
y = (E * C - A * F) / bunja
# ์ ์์ธ์ง ์์์ธ์ง
if x - int(x) == 0 and y - int(y) == 0:
x, y = int(x), int(y)
dot_list.append([x, y])
# ๋ฐฐ์ด ํฌ๊ธฐ ์ ํ๊ธฐ
x_dot_list = [dot[0] for dot in dot_list]
y_dot_list = [dot[1] for dot in dot_list]
x_min, x_max = min(x_dot_list), max(x_dot_list)
y_min, y_max = min(y_dot_list), max(y_dot_list)
# ๋ฐฐ์ด ๋ง๋ค๊ธฐ
arr = [['.' for _ in range(x_max - x_min + 1)] for _ in range(y_max - y_min + 1)]
# ๋ณ ์ฐ๊ธฐ
for dot in dot_list:
x, y = dot
arr[y_max - y][x - x_min] = '*'
return [''.join(a) for a in arr]
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค
๋งํฌ: ๊ต์ ์ ๋ณ ๋ง๋ค๊ธฐ
๋ฐ์ํ