본문 바로가기

백준 문제풀기/JAVA

[백준 19532 JAVA 자바] 수학은 비대면강의입니다

문제에서는

브루트포스 알고리즘을 이용해서

정수 해를 찾으라 하는것 같지만

 

선형대수학을 배우셨다면

행렬을 이용해서 푸는 방법이 

가장 먼저 떠오르실겁니다

 

이렇게 생긴 연립방정식을 행렬식으로 표현하면

이렇게 됩니다

 

저희는 a b c d p q 를 통해 x y를 찾아햐 하니깐

그렇게 식을 바꿔주면

이렇게 x와 y가 

a b c d p q 로 이루어진 식으로

나타날 수 있게 됩니다

 

코드입니다

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        
        int[] arr = new int[6];
        
        for(int i=0;i<6;i++) {
        	arr[i]=scan.nextInt();
        }
        
        int D = arr[0]*arr[4]-arr[1]*arr[3];
        
        int x = (arr[2]*arr[4]-arr[1]*arr[5])/D;
        int y = (arr[0]*arr[5]-arr[2]*arr[3])/D;
        
        System.out.print(x+" "+y);
    }
}

간단하죵