2023-04-27 BOJ 19532
문제 풀이 방식
처음에 틀린 이유
브루트 포스 아닌줄 알고 그냥 수식으로 해보려다 틀렸다… (수식이 틀렸던 것 같다)
맞는 풀이
- 수식으로 풀기 (역행렬 곱하기)
- 일일히 대입하기 (여기서는 시간 제한이 널널해서 이 방식으로 풀었다.)
문제 풀이 (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class boj19532 {
static int A, B, C, D, E, F;
static int x, y;
public static void main(String[] args)throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine(), " ");
A = Integer.parseInt(st.nextToken());
B = Integer.parseInt(st.nextToken());
C = Integer.parseInt(st.nextToken());
D = Integer.parseInt(st.nextToken());
E = Integer.parseInt(st.nextToken());
F = Integer.parseInt(st.nextToken());
defineAns();
System.out.printf("%d %d", x, y);
}
private static void defineAns() {
// 예외처리 안해줘도 OK . 무조건 해가 있는 경우이므로 브루트 포스
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;
}
}
}
}
}
Leave a comment