본문 바로가기
PS/Baekjoon

[Baekjoon] 19532 - 수학은 비대면강의입니다

by 서현 SEOHYEON 2023. 6. 26.

📝 문제

 

 

 

🔑 풀이 과정

· 처음에는 식을 세워서 풀이했다.

첫 풀이

그런데 이렇게 풀이하면 ZeroDivision 터진다.

만약 위 식과 아래식이 서로 상수배면 계산시 0x + 0y = 0 이라는 당연한 결과가 나오기때문에...

 

· 문제에서 x와 y는 유일한 해로 존재하고, 각각 -999 이상 999이하인 정수인 경우만 주어진다 했으므로

브루트 포스(완전 탐색)로 풀이한다. N이 2000이므로 N^2해도 시간이 충분하다.

 

 

 

 

🔓 답안

import java.io.*;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        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 = -999;
        int y = -999;

        loop:
        for(x = -999; x <= 999; x++){
            for(y = -999; y <= 999; y++){
                if((a*x + b*y == c) && (d*x + e*y == f))
                    break loop;
            }
        }

        bw.write(x + " " + y + "\n");
        bw.flush();
        bw.close();
    }
}

 

 

 

🖤 알고리즘 분류

- 수학

- 브루트포스 알고리즘

댓글