1. 문제설명
$$ ax + by = c \\ dx + ey = f $$
위 연립방정식에 대한 정수 $a, b, c, d, e, f$가 주어졌을 때, $(-999 ≤ a, b, c, d, e, f ≤ 999)$
문제의 답인 $x$와 $y$를 구하는 문제이다.
- 시간 제한: 1초
- 메모리 제한: 1024MB
2. 접근 방식
=> 완전탐색을 사용하여 x와 y에 -999부터 999까지 대입하여 해를 구한다.
- 2중 for문을 이용해 x와 y에 -999부터 999까지의 수를 대입한다.
- 두 개의 연립방정식에 맞으면 x와 y를 출력하고 프로그램 종료한다.
3. 최종 코드
import java.io.*;
import java.util.*;
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());
for(int x=-999; x<=999; x++) { // x에 -999부터 999까지 대입
for(int y=-999; y<=999; y++) { // y에 -999부터 999까지 대입
if(a*x + b*y == c && d*x + e*y == f) { // 두 개의 연립방정식에 만족하면
System.out.println(x+" "+y); // x와 y를 출력
return; // 프로그램 종료
}
}
}
}
}
4. 시간복잡도
각 루프는 1999번 반복된다. 1999를 N이라고 할 때 $O(N^2)$
반응형
'알고리즘 문제 > 백준' 카테고리의 다른 글
[백준] 22864번: 피로도 (Java) (0) | 2024.08.08 |
---|---|
[백준] 18511번: 큰 수 구성하기 (Java) (0) | 2024.08.08 |
[백준] 18312번: 시각 (Java) (0) | 2024.08.07 |
[백준] 15721번: 번데기 (Java) (0) | 2024.08.06 |
[백준] 4779번: 칸토어 집합 (Java) (0) | 2024.08.06 |
댓글