🔗교점에 별 만들기
import java.util.*;
class Solution {
public String[] solution(int[][] line) {
List<long[]> points=new ArrayList<>();
long minX=Long.MAX_VALUE;
long maxX=Long.MIN_VALUE;
long minY=Long.MAX_VALUE;
long maxY=Long.MIN_VALUE;
for(int i=0;i< line.length-1;i++){
long A= line[i][0];
long B=line[i][1];
long E=line[i][2];
for (int j = i + 1; j < line.length; j++) {
long C = line[j][0];
long D = line[j][1];
long F = line[j][2];
long dominator = A*D - B*C;
if(dominator==0)continue;
long xNumerator = B*F-E*D;
long yNumerator = E*C-A*F;
if(
xNumerator%dominator !=0 ||
yNumerator%dominator !=0
) continue;
long x=xNumerator / dominator;
long y=yNumerator / dominator;
points.add(new long[]{x,y});
minX=Math.min(minX, x);
minY=Math.min(minY, y);
maxX=Math.max(maxX, x);
maxY=Math.max(maxY, y);
}
}
int width = (int) (maxX - minX + 1);
int height = (int) (maxY - minY + 1);
char[][]board =new char[height][width];
for(int i=0;i<height;i++){
Arrays.fill(board[i], '.');
}
for(long[] point:points){
long x=point[0], y=point[1];
int row=(int) (maxY-y);
int col=(int) (x-minX);
board[row][col]='*';
}
String[] answer=new String[height];
for(int i=0;i<height;i++){
answer[i]=new String(board[i]);
}
return answer;
}
}