프로그래머스/LEVEL 2

교점에 별 만들기

GenieLove! 2022. 5. 3. 16:04
728x90
반응형

Python

from itertools import combinations
def solution(lines):
    points = []
    combi_lines = list(combinations(lines, 2))
    for line in combi_lines:
        A, B, E = line[0]
        C, D, F = line[1]
        if (A * D - B * C) == 0:
            continue
        x = (B * F - E * D) / (A * D - B * C)
        y = (E * C - A * F) / (A * D - B * C)
        if x.is_integer() and y.is_integer():
            points.append((int(x), int(y)))
        

    xs = [i[0] for i in points]
    ys = [i[1] for i in points]
    
    answer = [["." for _ in range(max(xs) - min(xs) + 1)] 
              for _ in range((max(ys) - min(ys) + 1))]
    minx = min(xs)
    miny = min(ys)
    for point in points:
        answer[point[1] - miny][point[0] - minx] = "*"
    
            
    
    return list(reversed([ "".join(l) for l in answer]))
728x90
반응형

'프로그래머스 > LEVEL 2' 카테고리의 다른 글

k진수에서 소수 개수 구하기  (0) 2022.05.05
영어 끝말잇기  (0) 2022.05.04
올바른 괄호  (0) 2022.05.02
다음 큰 숫자  (0) 2022.05.01
2개 이하로 다른 비트  (0) 2022.04.30