문제 링크
주의사항
- JAVA를 사용하여 프로그램을 사용하였습니다.
- 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{
public static void main(String[] args){
}
}
문제 설명
접근 방법
- BufferedReader를 사용하여 입력 값을 받았습니다.
- StringTokenizer를 통해서 열마다 띄어쓰기 기준으로 나누었습니다.
- 처음 받는 좌표를 x1,y1에 저장하여 첫 좌표로 사용하였습니다.
- 평행하는 직사각형의 좌표는 두 가지의 수가 2번씩 반복한다.
- 예제 입력2의 x좌표는 30,10이 2번씩 사용되어야 하며 y좌표는 20,10이 2번씩 사용되어야 한다.
- 이것을 이용하여 x_stack,y_stack을 통하여 2번 첫 좌표가 2번 받았는지 확인하였습니다.
- 좌표가 2번 받았다면 1번 받은 좌표가 네 번째 점에 좌표가 됩니다.
- stack==2가 되면 x2가 좌표가 되며 stack!=2이면 x1이 좌표가 되도록 만들었습니다.
- 결과를 bw에 저장하였습니다.
- BufferedWriter를 통해 저장된 결과를 출력하였습니다.
결과 코드
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));
//BufferedReader를 통해 입력 값 받기
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//BufferedWriter를 통해 결과 출력
String text = br.readLine();
StringTokenizer st = new StringTokenizer(text," ");//띄어쓰기 기준 나누기
int x1 = Integer.parseInt(st.nextToken()); //첫 좌표
int y1 = Integer.parseInt(st.nextToken());
int x2=0,y2=0, x_stack=1,y_stack=1;
for(int i=0;i<2;i++) { //다음 좌표들 받기
text = br.readLine();
st = new StringTokenizer(text," ");
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
if(x1 == x) //첫 좌표와 동일한지 비교
x_stack++; //같으면 stack +1
else
x2 = x; //다르면 두 번째 좌표에 저장
if(y1 == y)
y_stack++;
else
y2 = y;
}
int result_x = stackCal(x1,x2,x_stack); //네 번째 좌표 결정
int result_y = stackCal(y1,y2,y_stack);
bw.write(result_x + " " + result_y + "\n"); //좌표 bw에 저장
bw.flush(); //결과 출력
bw.close();
br.close();
}
public static int stackCal(int n, int m, int stack) { //네 번째 좌표 결정 함수
if(stack==2)
return m;
else
return n;
}
}
'백준' 카테고리의 다른 글
[백준] 단계별로 풀어보기(단계:9,기본수학2,JAVA)3053번, 택시 기하학 (0) | 2022.01.06 |
---|---|
[백준] 단계별로 풀어보기(단계:9,기본수학2,JAVA)4153번, 직각삼각형 (0) | 2022.01.06 |
[백준] 단계별로 풀어보기(단계:9,기본수학2,JAVA)1085번, 직사각형에서 탈출 (0) | 2022.01.04 |
[백준] 단계별로 풀어보기(단계:9,기본수학2,JAVA)9020번, 골드바흐의 추측 (0) | 2022.01.04 |
[백준] 단계별로 풀어보기(단계:9,기본수학2,JAVA)4948번, 베르트랑 공준 (0) | 2022.01.03 |
댓글