문제: https://www.acmicpc.net/problem/2563
1. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
boolean[][] board = new boolean[100][100];
while(N-- > 0) {
int w = sc.nextInt();
int h = sc.nextInt();
for(int i = w; i - w < 10; i++) {
for(int j = h; j - h < 10; j++)
board[i][j] = true;
}
}
int sum = 0;
for(int i = 0; i < board.length; i++) {
for(int j = 0; j < board.length; j++) {
if(board[i][j])
sum++;
}
}
System.out.println(sum);
}
}
2. 설명
boolean 2차원 배열을 통해서 흰색부분을 false로 검은색 부분을 true로 지정하여 true의 수는 검은 색종이의 넓이이기에 true의 수를 구하면 쉽게 해결됩니다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 - 2745번: 진법 변환 [Java] (0) | 2023.09.02 |
---|---|
백준 알고리즘 - 18110번: solved.ac [Java] (0) | 2023.09.01 |
백준 알고리즘 - 25206번: 너의 평점은 [Java] (0) | 2023.08.30 |
백준 알고리즘 10811번: 바구니 뒤집기 [Java] (0) | 2023.08.29 |
백준 알고리즘 - 10813번: 공 바꾸기 [Java] (0) | 2023.08.28 |