문제
https://www.acmicpc.net/problem/19532
19532번: 수학은 비대면강의입니다
정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $-
www.acmicpc.net
import java.util.Scanner;
public class Main19532 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[6];
int xAns=0;
int yAns=0;
for (int i=0; i<arr.length; i++) {
arr[i] = sc.nextInt();
}
sc.close();
for (int i = -999; i<=999; i++) {
for (int j = -999; j<=999; j++) {
if (arr[2] == arr[0]*i + arr[1]*j && arr[5] == arr[3]*i + arr[4]*j) {
xAns = i;
yAns = j;
}
}
}
System.out.print(xAns+" "+yAns);
}
}
1. 정답
2. 중간에 실수를 한 부분이 있다. 로직은 맞다고 생각을 했는데 자꾸만 출력이 안돼서 무슨 문제인지 잠시 헷갈렸다.
처음 2중for문 안에 있는 조건문에 return;을 입력했기 때문에 그런 현상이 생긴 것이다.
3. return은 메소드를 종료 시키는 것이고 메인메소드는 반환값이 없기 때문이다. 그래서 break로 for문을 탈출 하던지 혹은 위처럼 두어도된다. 다만 조건문이 참일 경우 그 뒤는 굳이 탐색을 할 필요없기에 break를 사용 하거나 return전에 출력을 하는 방향으로 종료시켜야한다.
'백준' 카테고리의 다른 글
백준 1969번 ☆ (0) | 2022.11.15 |
---|---|
백준 22864번 (0) | 2022.11.15 |
백준 2231번 (0) | 2022.11.09 |
백준 14889번 (0) | 2022.11.08 |
백준 2798번 (0) | 2022.11.05 |