본문 바로가기
코딩테스트

[백준] 15973번 '두 박스' - Java

by CuckooBird 2024. 8. 10.

https://www.acmicpc.net/problem/15973


문제


풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int[][] square = new int[2][4];
		
		for(int i=0; i<2; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			square[i][0] = Integer.valueOf(st.nextToken());
			square[i][1] = Integer.valueOf(st.nextToken());
			square[i][2] = Integer.valueOf(st.nextToken());
			square[i][3] = Integer.valueOf(st.nextToken());
		}
		
		String ans = solution(square);
		System.out.println(ans);
	}
	
	public static String solution(int[][] square) {
		if(square[0][2] < square[1][0] || square[1][2] < square[0][0] || square[0][3] < square[1][1] || square[1][3] < square[0][1])
			return "NULL";
		else if((square[0][0] == square[1][2] && square[0][1] == square[1][3]) ||
				(square[0][2] == square[1][0] && square[0][1] == square[1][3]) ||
				(square[0][0] == square[1][2] && square[0][3] == square[1][1]) ||
				(square[0][2] == square[1][0] && square[0][3] == square[1][1]))
			return "POINT";
		else if(square[0][0] == square[1][2] || square[0][2] == square[1][0] ||
				square[0][1] == square[1][3] || square[0][3] == square[1][1])
			return "LINE";
		else
			return "FACE";
	}
	
	

}

 


회고

기하학이라고 해서 대각선 이용해서 일직선이 겹치는 곳을 조건분기 하려고 했으나, 그렇게 하다가는 예외 사항이 많다는 것을 깨달았고 결국 노가다성..

중학생 올림피아드였다는데 왜인지 알 것 같았다.. 근데 왜 실버에 있던 거지