백준 19532 문제 <브루트포스>

Frog Lemon·2024년 8월 25일
0

알고리즘

목록 보기
9/20
post-thumbnail



브루트포스 문제이다. 연립 방정식을 생각하면 쉽게 접근할 수 있었다.
허나 초기에는 x 와 y를 구하기위해 yNum, value라는 변수를 추가적으로 생성했지만
불필요한 변수선언으로 인해 메모리가 소모되는 것을 피하고자 다른 방법으로 접근하였다.

또한 출력의 마지막 부분에 자꾸 0이 출력되는 문제가 발생하였는데.
원인을 찾아보니 코드에서 마지막 출력 결과에 "0"이 붙는 문제는, 계산 중에 정수 나눗셈의 특성 때문에 발생할 수 있습니다. 특히, 연산 결과가 정수로 나누어 떨어지지 않을 경우, Java에서는 나머지가 버려지고 몫만 출력됩니다. 또한, BufferedWriter를 사용하여 값을 바로 출력하는 과정에서 문제가 발생할 수 있습니다.


코드

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

public class B_19532 {
    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());
        br.close();

        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 = (c * e - f * b) / (a * e - d * b);
        int y = (c * d - f * a) / (b * d - e * a);

        // 결과 출력
        bw.write(x + " " + y);
        bw.flush();
        bw.close();
    }
}
profile
노력과 끈기를 추구합니다. 레몬이 좋아!

0개의 댓글