Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 프로그래머스
- 순수함수
- 2501
- val
- 스카이라인 쉬운거
- 최단경로
- BuildConfig
- Kotlin
- java
- 약수 구하기
- imeOptions
- 백준 퇴사
- hilt
- 오르막수
- Parcelize
- 완전탐색
- 순열
- Parcelable
- EditorInfo
- 자바
- dfs
- 백준 14501
- SWEA
- 지능형 기차2
- EditText
- 조합
- 백준
- Android
- 시뮬레이션
- BFS
Archives
- Today
- Total
안드 공부를 해볼까?
[Java] 백준 직사각형 네개의 합집합의 면적 구하기 본문
728x90
1. 문제분석
삼성코테 IM등급 문제를 가볍게 풀려다가 너무 현타가와서 정리를 한다.
맨날 DFS, BFS만 머리에 있어서 기본적인 것도 못풀었다.
문제는 간단하다. 왼쪽아래 좌표와 오른쪽 위의 좌표 총 4개가 주어지고 이들의 면적을 구하는 것이다.
단순히 생각하면 면적을 구하고 곂치는걸 빼면 되는구나! 라고 생각을 했다.
그러다보니 조건도 복잡하고 코드도 너무 더러워졌다.
저 그림을 보면 무엇이 생각날까? 바로 배열이다. 해당하는 부분을 1로 채우면 곂치던 말던 범위는 구해진다.
좌표를 받아 반복문으로 배열안의 값을 넣어주면 끝이다.
2. 구현
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int[][] arr = new int[101][101];
//입력
for (int i = 0; i < 4; i++) {
st = new StringTokenizer(br.readLine());
//각 좌표를 기억
int leftX = Integer.parseInt(st.nextToken());
int leftY = Integer.parseInt(st.nextToken());
int rightX = Integer.parseInt(st.nextToken());
int rightY = Integer.parseInt(st.nextToken());
//1로 채워주기
for (int j = leftY; j < rightY; j++) {
for (int k = leftX; k < rightX; k++) {
arr[j][k] = 1;
}
}
}
//값 구하기
int count = 0;
for (int i = 0; i <= 100; i++) {
for (int j = 0; j <= 100; j++) {
if(arr[i][j] == 1) count++;
}
}
System.out.println(count);
}
}
정말 쉬운문제다. 브론즈 1문제라고 하니 그냥 풀자.
3. 마무리
현타가 씨게 온 문제.. 이걸.. 몰라서.. 구글링을..하네..
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[Java] 백준 종이자르기 (0) | 2022.08.20 |
---|---|
[Java] 백준 스위치 켜고 끄기 (0) | 2022.08.20 |
[Java] 백준 기차가 어둠을 헤치고 은하수를 (0) | 2022.08.16 |
[Java] 백준 귀여운 라이언 (0) | 2022.08.16 |
[Java] 백준 배열 돌리기 (0) | 2022.08.16 |
Comments