반응형
[1] 백준 카테고리
단계별로 풀어보기
기본 수학 2
8단계 3009번 문제
직사각형에서 탈출
[2] 문제
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
1. 입력
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.
2. 출력
직사각형의 네 번째 점의 좌푤르 출력한다.
3. 예제 입력 1
5 5
5 7
7 5
4. 예제 출력 1
7 7
[3] 정답
1. 정답 해설 미포함
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int a1 = Integer.parseInt(st.nextToken());
int a2 = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine()," ");
int b1 = Integer.parseInt(st.nextToken());
int b2 = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine(), " ");
int c1 = Integer.parseInt(st.nextToken());
int c2 = Integer.parseInt(st.nextToken());
int d1=0;
int d2=0;
if(a1==b1) {
d1=c1;
}
else if(b1==c1){
d1=a1;
}
else{
d1=b1;
}
if(a2==b2) {
d2=c2;
}
else if(b2==c2){
d2=a2;
}
else{
d2=b2;
}
System.out.println(d1 +" "+ d2);
}
}
2. 정답 해설 포함
import java.io.BufferedReader;
/* BufferedReader 사용을 위해서 java.io.BufferedReader 클래스를 import 한다.
Enter를 경계로 인식하고 받은 데이터는 String으로 고정된다.*/
import java.io.InputStreamReader;
/* byte 단위 데이터를 문자 단위 데이터로 처리할 수 있도록 변환해주기 위해서
InputStreamReader를 사용한다.
InputStreamReader 사용을 위해서 java.io.InputStreamReader 클래스를 import 한다.*/
import java.io.IOException;
/* 예외 처리를 위해서 IOException를 사용한다.
IOException 사용을 위해서 java.io.IOException 클래스를 import 한다.*/
import java.util.StringTokenizer;
/* 공백 단위로 호출하기 위해서 StringTokenizer를 사용한다.
StringTokenizer를 사용하기 위해서
StringTokenizer java.util.String 클래스를 import 한다.*/
public class Main {
// 접근제어자 public으로 Main 클래스를 선언한다.
public static void main(String[] args) throws NumberFormatException, IOException{
// 접근제어자 public으로 메모리에 상주하고 리턴값이 없이 main 함수를 선언한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// BufferedReader 객체 br를 선언한다
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
// String 객체 st를 선언한다 이제 공백으로 값을 입력 받을 수 있다.
int a1 = Integer.parseInt(st.nextToken());
/* int형 변수 a1를 선언하고 값을 공백 단위로 구분해서 입력받는다
Inter.parseInt()로 String 변수를 int형으로 변환시킨다.*/
int a2 = Integer.parseInt(st.nextToken());
/* int형 변수 a2를 선언하고 값을 공백 단위로 구분해서 입력받는다
Inter.parseInt()로 String 변수를 int형으로 변환시킨다.*/
st = new StringTokenizer(br.readLine()," ");
// StringTokenizer를 이용해서 개행한다.
int b1 = Integer.parseInt(st.nextToken());
/* int형 변수 b1를 선언하고 값을 공백 단위로 구분해서 입력받는다
Inter.parseInt()로 String 변수를 int형으로 변환시킨다.*/
int b2 = Integer.parseInt(st.nextToken());
/* int형 변수 b2를 선언하고 값을 공백 단위로 구분해서 입력받는다
Inter.parseInt()로 String 변수를 int형으로 변환시킨다.*/
st = new StringTokenizer(br.readLine(), " ");
// StringTokenizer를 이용해서 개행한다.
int c1 = Integer.parseInt(st.nextToken());
/* int형 변수 c1를 선언하고 값을 공백 단위로 구분해서 입력받는다
Inter.parseInt()로 String 변수를 int형으로 변환시킨다.*/
int c2 = Integer.parseInt(st.nextToken());
/* int형 변수 c2를 선언하고 값을 공백 단위로 구분해서 입력받는다
Inter.parseInt()로 String 변수를 int형으로 변환시킨다.*/
int d1=0;
// int형 변수 d1를 선언하고 값을 0으로 초기화한다.
int d2=0;
// int형 변수 d2를 선언하고 값을 0으로 초기화한다.
if(a1==b1) {
// 변수 a1과 변수 b1에 저장된 값이 같을때 괄호안의 코드를 실행한다.
d1=c1;
// 변수 c1에 저장된 값을 변수 d1에 저장한다.
}
else if(b1==c1){
// 변수 b1과 변수 c1에 저장된 값이 같을때 괄호안의 코드를 실행한다.
d1=a1;
// 변수 a1에 저장된 값을 변수 d1에 저장한다.
}
else{
// 위의 사례에 전부 해당되지 않을 경우 괄호안의 코드를 실행한다.
d1=b1;
// 변수 b1에 저장된 값을 변수 d1에 저장한다.
}
if(a2==b2){
// 변수 a2과 변수 b2에 저장된 값이 같을때 괄호안의 코드를 실행한다.
d2=c2;
// 변수 d2에 저장된 값을 변수 c2에 저장한다.
}
else if(b2==c2){
// 변수 b2과 변수 c2에 저장된 값이 같을때 괄호안의 코드를 실행한다.
d2=a2;
// 변수 d2에 저장된 값을 변수 a2에 저장한다.
}
else{
// 위의 사례에 전부 해당되지 않을 경우 괄호안의 코드를 실행한다.
d2=b2;
// 변수 d2에 저장된 값을 변수 b2에 저장한다.
}
System.out.println(d1 +" "+ d2);
// 변수 d1에 저장된 값과 변수 d2에 저장된 값을 출력한다.
}
}
직사각형이므로 변 두쌍의 값이 각각 같아야 한다. 변 3개의 길이가 주어졌으므로 길이가 같은 변 2개를 제외한 변 1개의 길이와 구해야 되는 변의 길이가 같을 것이다. 이를 알고리즘으로 표현하면 다음과 같다.
if(a1==b1) {
// 변수 a1과 변수 b1에 저장된 값이 같을때 괄호안의 코드를 실행한다.
d1=c1;
// 변수 c1에 저장된 값을 변수 d1에 저장한다.
}
else if(b1==c1){
// 변수 b1과 변수 c1에 저장된 값이 같을때 괄호안의 코드를 실행한다.
d1=a1;
// 변수 a1에 저장된 값을 변수 d1에 저장한다.
}
else{
// 위의 사례에 전부 해당되지 않을 경우 괄호안의 코드를 실행한다.
d1=b1;
// 변수 b1에 저장된 값을 변수 d1에 저장한다.
}
반응형
'프로그래밍 > 백준 문제 풀이(자바)' 카테고리의 다른 글
백준 3053번 자바 문제 답/해설(택시 기하학 문제) (0) | 2021.12.31 |
---|---|
백준 4153번 자바 문제 답/해설(직각삼각형 문제) (0) | 2021.12.30 |
백준 1085번 자바 문제 답/해설(직사각형에서 탈출 문제) (0) | 2021.12.28 |
백준 9020번 자바 문제 답/해설(골드바흐의 추측 문제) (0) | 2021.12.27 |
백준 4948번 자바 문제 답/해설(베르트랑 공준 문제) (0) | 2021.12.26 |