반응형
접근 방법)
int 형의 [100][100]의 배열을 생성한다. 그리고 for문을 이용하여 색종이를 붙인 위치에 해당하는 배열들을 값을 1로 변경한다.
마지막으로 한 번 더 for문을 만들어 [100][100]의 배열 하나하나 값을 검사하도록 하고, for문 안에 if문을 추가하여 배열의 값이 1일 때 result 값(최종적으로 출력할 값)에 1씩 더하여 출력을 한다.
처음에는 첫째 줄에 입력한 색종이 수 X 100에서 겹쳐있는 부분들을 빼는 코드를 작성해보려 했지만 너무 복잡하고 어려워 방법을 변경하였다.
정답 코드 1)
import java.util.*;
import java.lang.*;
import java.io.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] paper = new int[100][100];
int num = sc.nextInt();
int result = 0;
for(int i = 0; i < num; i++){
int a = sc.nextInt();
int b = sc.nextInt();
for(int j = a; j < a+10; j++){
for(int k = b; k < b+10; k++){
paper[j][k] = 1;
}
}
}
for(int l = 0; l < 100; l++){
for(int m = 0; m < 100; m++){
if(paper[l][m] == 1){
result++;
}
}
}
System.out.println(result);
}
}
색종이를 붙인 부분에 해당하는 배열에 값을 1로 설정하고 나중에 for문과 if문을 통해 값이 1인 총 배열 수(즉 색종이 넓이에 해당)를 구하는 것이 핵심이라고 생각한다.
반응형
'Baekjoon 자바 코드 > 2차원 배열' 카테고리의 다른 글
[백준] 10798번 세로읽기 풀이 코드 (Java 자바) (0) | 2024.05.23 |
---|---|
[백준] 2566번 최댓값 풀이 코드 (Java 자바) (0) | 2024.05.22 |
[백준] 2738번 행렬 덧셈 풀이 코드 (Java 자바) (0) | 2024.05.21 |