자료구조&알고리즘/백준
[백준] 색종이 2563번 (PYTHON,JAVA)
고쩡이
2024. 3. 7. 11:52
✔ 문제 2563 색종이
핵심 아이디어
2차원 배열로 저장 및 처리한다.시작점 좌표를 기준으로 해당 사각형크기만큼 배열에 1을 표시한다.
PYTHON
N = int(input())
arr = [[0]*102 for _ in range(102)]
for _ in range(N):
# [1] 해당 영역을 1로 표시
sj, si = map(int, input().split())
for i in range(si,si + 10):
for j in range(sj, sj + 10):
arr[i][j] = 1
# [2] 1의 개수를 cnt => 넓이
ans = 0
for lst in arr:
ans += sum(lst)
print(ans)
JAVA
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[][] arr = new int[102][102];
// N 개의 좌표에 해당하는 10X10 영역을 1로 표시
for(int k = 0; k < N; k++){
StringTokenizer tokenizer = new StringTokenizer(br.readLine());
int sj = Integer.parseInt(tokenizer.nextToken());
int si = Integer.parseInt(tokenizer.nextToken());
for (int i = si; i < si + 10; i++){
for (int j = sj; j < sj + 10; j++){
arr[i][j] = 1;
}
}
}
// 1의 개수를 cnt => 넓이
int ans = 0;
for(int[] row : arr){
for(int cell : row){
ans += cell;
}
}
System.out.println(ans);
}
}