suheang

[백준] | JAVA, 자바 | 19532번 - 수학은 비대면강의입니다 본문

알고리즘

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

suheang 2024. 3. 14. 22:08

https://www.acmicpc.net/problem/19532

 

19532번: 수학은 비대면강의입니다

정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $-

www.acmicpc.net


문제 요약 :

 버추얼 선생님은 문자가 2개인 연립방정식을 해결하는 방법에 대해 강의하고, 다음과 같은 문제를 숙제로 냈다.

강의의 숙제 제출은 인터넷 창의 빈 칸에 수들을 입력하는 식이다. 각 칸에는  이상 999 이하의 정수만 입력할 수 있다.

정수 , , , , , 가 공백으로 구분되어 차례대로 주어진다. ()

문제에서 언급한 방정식을 만족하는 가 유일하게 존재하고, 이 때 가 각각  이상 999 이하의 정수인 경우만 입력으로 주어짐이 보장된다.

 

문제의 답인 를 공백으로 구분해 출력


문제 풀이 :

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        int c = Integer.parseInt(st.nextToken());
        int d = Integer.parseInt(st.nextToken());
        int e = Integer.parseInt(st.nextToken());
        int f = Integer.parseInt(st.nextToken());

        int x = 0, y = 0;
        for (int i = -999; i <= 999; i++) {
            for (int j = -999; j <= 999; j++) {
                if (a * i + b * j == c && d * i + e * j == f) {
                    x = i;
                    y = j;
                    break;
                }
            }
        }
        System.out.println(x + " " + y);
    }
}

 

1. a, b, c, d, e, f 입력받기

2. x, y 를 저장할 변수 생성

3. ax + by = c, dx + ey = f 두 개의 조건을 충족시키는 i 와 j 일 때 x, y에 값을 저장하고 for문 종료

4. 저장된 x, y 출력