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 | 31 |
Tags
- 텐션 업 10기!
- BFS
- amazon
- SSAFY IM/A
- 텐션 업 10기 화이팅
- 자고 싶다
- 수학
- 코로나 싫어요
- have a nice day
- Have a good day :)
- 우유아야
- 아자아자 화이팅
- HAVE A GOOD DAY
- 모르고리즘
- 네트워크
- I am Korean
- LeetCode #릿코드 #좋은 하루 되세요 #Have a nice day
- SSAFY 화이팅
- 우유가 옆으로 넘어지면 아야
- 자료구조
- SeongSeobDang
- 우유가옆으로넘어지면아야
- DFS
- Have a nice day.
- SSAFY 테스트
- SSAFY 10기 화이팅
- DP
- Hamming weight
- Java 환경 설정
Archives
- Today
- Total
Hope Everyone Is Happy
[브론즈1] 10163. 색종이 (Java) 본문
728x90
반응형
https://www.acmicpc.net/problem/10163
10163번: 색종이
평면에 색깔이 서로 다른 직사각형 모양의 색종이 N장이 하나씩 차례로 놓여진다. 이때 색종이가 비스듬하게 놓이는 경우는 없다. 즉, 모든 색종이의 변은 서로 평행하거나, 서로 수직이거나 둘
www.acmicpc.net
IM, A형 테스트 화이팅입니다~!!
※ 문제를 요약하면 아래와 같습니다.
▶ 색종이를 1번~N번까지 N장 놓았을 때 각 색종이는 겹쳤을 경우 나중에 놓은 색종이가 더 위로 쌓이게 됨
▶ 이 때, 각 색종이의 보이는 부분의 면적을 출력
▶ 색종이를 놓는 보드의 크기는 1001 x 1001로 지정
▶ Input : 첫줄에 색종이의 수 및 다음 줄 부터 각 색종이의 정보를 입력
색종이의 정보 - 가장 왼쪽 아래 좌표, 너비(가로)와 높이(세로)
▶ Output : 각 색종이의 면적 출력
◈ Input - 1
2
0 0 10 10
2 2 6 6
◈ Output - 1
64
36
◈ Input - 2
3
0 2 10 10
7 9 8 4
8 4 10 6
◈ Output - 2
81
25
60
◎ 코드 작성 전, 아래와 같이 솔루션을 정리하였습니다.
▶ 1001x10001 색종이 보드의 배열을 선언
▶ 1번 부터 주어진 색종이의 정보에 인덱스 정보를 삽입
▶ 1,2 번이 겹칠 경우 2번으로 덮어 씌워짐
▶ 주어진 색종이 수 만큼 좌표 정보 입력 후, 각 색종이 번호의 값을 가지는 배열의 원소를 카운트하여 출력
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader bReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bWriter = new BufferedWriter(new OutputStreamWriter(System.out));
int nPapers = Integer.parseInt(bReader.readLine());
int[][] narrBoard = new int[1001][1001];
for (int p = 1; p <= nPapers; p++) {
StringTokenizer st = new StringTokenizer(bReader.readLine());
int nCol = Integer.parseInt(st.nextToken());
int nRow = Integer.parseInt(st.nextToken());
int nWidth = Integer.parseInt(st.nextToken());
int nHeight = Integer.parseInt(st.nextToken());
for (int i = nRow; i < nRow + nHeight; i++) {
for (int j = nCol; j < nCol + nWidth; j++) {
narrBoard[i][j] = p;
}
}
}
for (int p = 1; p <= nPapers; p++) {
int nCount = 0;
for (int i = 0; i < 1001; i++) {
for (int j = 0; j < 1001; j++) {
if (narrBoard[i][j] == p)
nCount++;
}
}
bWriter.write(nCount + "\n");
}
bWriter.flush();
bWriter.close();
}
}
읽어주셔서 감사합니다!
Good Luck! (피드백 감사합니다!)
'※ 백준 (Baekjoon) > [Java] 문제 풀이 ( Solve the problems)' 카테고리의 다른 글
[실버4] 1940. 주몽 (Java) (0) | 2023.08.29 |
---|---|
[실버3] 2108. 통계학 (Java) (0) | 2023.08.28 |
[실버4] 11399. ATM (Java) (0) | 2023.08.27 |
[실버5] 2941. 크로아티아 알파벳 (Java) (0) | 2023.08.27 |
[실버4] 2567. 색종이 - 2 (Java) (0) | 2023.08.24 |