‡ CODING TEST STUDY ‡/º 백준

[백준 | Java Bronze III ] (#19532) 수학은 비대면강의입니다

Trudy | 송연 2024. 7. 8. 01:52

문제

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


첫번째 코드  - 실패 (Runtime error: division by zero)

일반적으로 2차 방정식을 푸는 방식으로 접근해서 풀었다. 예시 테스트 코드들은 잘 돌아가지만 채점을 하면 division by 0 라는 런타임 에러가 뜬다. 계수가 0인 경우에 잘못 된 것 같다. 

package week10.baek.july9;

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

public class B19532 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int[] nums = new int[6];
        for (int i = 0; i < 6; i++) {
            nums[i] = Integer.parseInt(st.nextToken());
        }

        //x의 계수를 맞춰주기
        int a  = nums[4] * nums[0] - nums[1] * nums[3];
        int b = nums[5] * nums[0]- nums[2] * nums[3];

        int y = b / a;
        int x = (nums[2] - nums[1] * y)/nums[0];

        System.out.println(x + " " + y);
    }
}

 

찾아보니 이 문제는 완전 탐색으로 풀 수 있었던 문제이다. 

너무 어렵게 생각했다.. 이렇게 단순히 풀렸던 문제라니

 

 

 

최종 코드 

 

package week10.baek.july9;

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

public class B19532 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int[] nums = new int[6];
        for (int i = 0; i < 6; i++) {
            nums[i] = Integer.parseInt(st.nextToken());
        }

        for (int i = -999; i <=999; i++) {
            for (int j = -999; j <= 999; j++) {
                int a = i * nums[0] + j * nums[1];
                int b = i * nums[3] + j * nums[4];

                if(a == nums[2] && b == nums[5]) {
                    System.out.println(i + " " + j);
                    return;
                }
            }
        }

    }
}