풀이
직사각형의 안에있는 경우와 밖에있는 경우는 조건이 쉬우므로 if와 else if로 조건을 처리하였고 직사각형의 네 변 중 적어도 하나의 위에 있는 경우는 조건이 까다롭지만 문제에서 조건은 딱 3종류 이므로 else에 두어서 까다로운 조건을 그냥 받도록하여 해결하였습니다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder("");
int T = Integer.parseInt(br.readLine());
for (int tc = 1; tc <= T; ++tc) {
StringTokenizer st = new StringTokenizer(br.readLine());
int X1 = Integer.parseInt(st.nextToken());
int Y1 = Integer.parseInt(st.nextToken());
int X2 = Integer.parseInt(st.nextToken());
int Y2 = Integer.parseInt(st.nextToken());
int N = Integer.parseInt(br.readLine());
int inCnt = 0;
int outCnt = 0;
int lineCnt = 0;
for (int i = 0; i < N; ++i) {
st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
if (x < X1 || x > X2 || y < Y1 || y > Y2) {
outCnt++;
}
else if ((x > X1 && x < X2) && (y > Y1 && y < Y2)) {
inCnt++;
}
else {
// 줄위 입력은 조건이 생각보다 까다로우므로
// 직접 쓸필요없이 마지막 else로 빼내면 된다!
lineCnt++;
}
}
sb.append("#").append(tc).append(" ");
sb.append(inCnt).append(" ").append(lineCnt).append(" ").append(outCnt);
System.out.println(sb);
sb.setLength(0);
}
}
}
'알고리즘 > SWEA' 카테고리의 다른 글
[Java] SWEA 6485번 삼성시의 버스 노선 (0) | 2021.02.09 |
---|---|
[Java] SWEA 7227번 사랑의 카운슬러 (0) | 2021.02.08 |
[Java] SWEA 4789번 성공적인 공연 기획 (0) | 2021.02.05 |
[Java] SWEA 4371번 항구에 들어오는 배 (0) | 2021.02.03 |
[Java] SWEA 6019번 기차사이의 파리 (0) | 2021.02.02 |