[문제 링크] 👉 https://www.acmicpc.net/problem/3009
설명
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
풀이
아래 사각형은 입력이 다음과 같을 때의 그림이다. 첫 번째 열은 x값, 두 번째 열은 y값을 의미한다.
5 5
5 7
7 5
어렵게 생각할 거 없이 x와 y값에서 중복이 없는 숫자를 출력하면 된다.
sol.1
- 첫 번째 수와 두 번째 수가 같으면 세 번째 수를 출력한다.
- 첫 번째 수와 세 번째 수가 같으면 두 번째 수를 출력한다.
- 첫 번째 수와 같은 수가 없으면 첫 번째 수를 출력한다.
sol.2 - 삼항 연산자를 이용
Expression1이 true이면 Expression2를 반환하고, false이면 Expression3를 반환한다. 이 방법으로 문제를 풀면 다음과 같다.
- x[0]과 x[1]이 같으면 x[2]를 반환하고, 그렇지 않으면 x[0]과 x[2]를 비교하여 나머지 값을 반환한다.
- (x[0] == x[1]) ? x[2] : (x[0] == x[2]) ? x[1] : x[0]
Solution
sol.1
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] x = new int[3];
int[] y = new int[3];
for (int i = 0; i < 3; i++) {
String[] nums = br.readLine().split(" ");
x[i] = Integer.parseInt(nums[0]);
y[i] = Integer.parseInt(nums[1]);
}
int result1, result2;
if (x[0] == x[1]) result1 = x[2];
else if (x[0] == x[2]) result1 = x[1];
else result1 = x[0];
if (y[0] == y[1]) result2 = y[2];
else if (y[0] == y[2]) result2 = y[1];
else result2 = y[0];
System.out.println(result1 + " " + result2);
}
}
sol.2
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] x = new int[3];
int[] y = new int[3];
for (int i = 0; i < 3; i++) {
String[] nums = br.readLine().split(" ");
x[i] = Integer.parseInt(nums[0]);
y[i] = Integer.parseInt(nums[1]);
}
int result1 = (x[0] == x[1]) ? x[2] : (x[0] == x[2]) ? x[1] : x[0];
int result2 = (y[0] == y[1]) ? y[2] : (y[0] == y[2]) ? y[1] : y[0];
System.out.println(result1 + " " + result2);
}
}
'BOJ 코딩테스트 > Bronze' 카테고리의 다른 글
BOJ 2775번 : 부녀회장이 될테야 (Python/구현/Bronze 1) (0) | 2024.10.15 |
---|---|
BOJ 11721 : 열 개씩 끊어 출력하기 (Java/구현/Bronze 3) (0) | 2024.10.14 |
BOJ 5086 : 배수와 약수 (Java/수학/Bronze 3) (0) | 2024.10.14 |
BOJ 10810 : 공 넣기 (Java/구현/Bronze 3) (2) | 2024.10.12 |
BOJ 1598 : 꼬리를 무는 숫자 나열 (Java/수학/Bronze 3) (0) | 2024.10.12 |