Muscardinus
교점에 별 만들기 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/87377
계획1 - 문제에 나온 공식대로 모든 정수 교차점과 좌표의 최대/최솟값을 구합니다.
계획2 - 너비와 높이를 계산 후, 별을 찍습니다.
function solution(line) {
const point = [];
let minX = Infinity;
let minY = Infinity;
let maxX = -Infinity;
let maxY = -Infinity;
for (let i = 0; i < line.length; i++) {
for (let j = i + 1; j < line.length; j++) {
const [a, b, e] = line[i];
const [c, d, f] = line[j];
const mod = a * d - b * c;
if (mod === 0) continue;
const x = b * f - e * d;
const y = e * c - a * f;
if (x % mod || y % mod) continue;
point.push([y / mod, x / mod]);
minX = Math.min(minX, x / mod);
minY = Math.min(minY, y / mod);
maxX = Math.max(maxX, x / mod);
maxY = Math.max(maxY, y / mod);
}
}
const answer = [...new Array(maxY - minY + 1)]
.map(() => new Array(maxX - minX + 1).fill('.'));
for (let i = 0; i < point.length; i++) {
const [y, x] = point[i];
answer[maxY - y][x - minX] = '*';
}
return answer.map((v) => v.join(''));
}
728x90
'알고리즘 문제 > [프로그래머스] Lv2' 카테고리의 다른 글
n^2 배열 자르기 (0) | 2022.04.08 |
---|---|
모음사전 (0) | 2022.04.07 |
전력망을 둘로 나누기 (0) | 2022.04.05 |
2개 이하 다른 비트 (0) | 2022.04.05 |
피로도 (0) | 2022.04.04 |
Comments