문제 출처 : https://www.acmicpc.net/problem/2563
2563번: 색종이
가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록
www.acmicpc.net
문제

설명
넓이를 일일히 구하는 것이 아니라, 심플하게 1X1 짜리 검정 도화지가 100X100 흰색 도화지 위에 몇 개 있는지만을 셌습니다.
white[100][100]의 모든 요소의 값은 0으로 채워져 있다가, 입력값에 따라 검정 도화지로 덮여지는 부분들을 1로 바꾼 후 마지막에 1의 값이 들어 있는 요소의 갯수를 세는 방식으로 풀었습니다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BOJ2563_Paper {
public static void main(String[] args) throws Exception {
int[][] white = new int[100][100];
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
StringTokenizer st;
for(int i=0; i<num; i++) {
st=new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken())-1; //인덱스는 0부터 시작하므로
int y = Integer.parseInt(st.nextToken())-1;
for(int j=x; j<x+10; j++) {
for(int k=y; k<y+10; k++) {
white[j][k]=1;
}
}
}
int cnt=0;
for(int i=0; i<100; i++) {
for(int j=0; j<100; j++) {
if(white[i][j]==1)
cnt++;
}
}
System.out.println(cnt);
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[BOJ][JAVA]2493 - 탑 (0) | 2021.08.20 |
---|---|
[BOJ][JAVA]17478번 - 재귀함수가 뭔가요? (0) | 2021.08.16 |
[BOJ][JAVA]1244 - 스위치 켜고 끄기 (0) | 2021.08.15 |
[BOJ][JAVA]2961 - 도영이가 만든 맛있는 음식 (0) | 2021.08.12 |
[BOJ][JAVA]11866 - 요세푸스 문제 0 (0) | 2021.08.10 |