- 예제 입력1
1 3 -1 4 1 7
- 예제 출력1
2 -1
- 예제 입력2
2 5 8 3 -4 -11
- 예제 출력2
-1 2
- 문제 접근
- a, b, c, d, e, f는 -999 ~ 999 사이의 값
- x = -999, y = -999부터 시작하여 각각 대입
- 문제 해결
- 이중 반복문으로 해결
- x = -999 ~ 999
- y = -999 ~ 999
- a * x + b * y = c이고 d * x + e * y = f일 때 반복문 종료
- 이중 반복문으로 해결
- 슈도 코드
a, b, c, d, e, f 값 저장
for(x = -999 ~ 999까지 반복){
if(x != 0 && y != 0) break;
for(y = -999 ~ 999까지 반복){
if(ax + by = c이고 dx + ey = f){
answerX(x 저장)
answerY(y 저장)
}
}
}
- 코딩하기
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken()), b = Integer.parseInt(st.nextToken()), c = Integer.parseInt(st.nextToken());
int d = Integer.parseInt(st.nextToken()), e = Integer.parseInt(st.nextToken()), f = Integer.parseInt(st.nextToken());
int answerX = 0, answerY = 0;
for(int x = -999; x <= 999; x++){
if(answerX != 0 && answerY != 0) break;
for(int y = -999; y <= 999; y++){
if(a * x + b * y == c && d * x + e * y == f){
answerX = x; answerY = y;
break;
}
}
}
System.out.println(answerX + " " + answerY);
}
연립 방정식을 구하는 공식으로 문제 풀이
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken()), b = Integer.parseInt(st.nextToken()), c = Integer.parseInt(st.nextToken());
int d = Integer.parseInt(st.nextToken()), e = Integer.parseInt(st.nextToken()), f = Integer.parseInt(st.nextToken());
int answerX = (e * c - b * f) / (a * e - b * d);
int answerY =(a * f - d * c) / (a * e - b * d);
System.out.println(answerX + " " + answerY);
}
'Coding Test > Step12. 브루스 포트' 카테고리의 다른 글
[Java] 6단계. 체스판 다시 칠하기 [2839번] (0) | 2024.07.14 |
---|---|
[Java] 5단계. 영화감속 숌 [1436번] (0) | 2024.07.14 |
[Java] 4단계. 체스판 다시 칠하기 [1018번] (0) | 2024.07.14 |
[Java] 2단계. 분해합 [2231번] (0) | 2024.07.14 |
[Java] 1단계. 블랙잭 [2798번] (0) | 2024.07.14 |