728x90

문제설명

입력 & 출력

나의 풀이

이번 문제는 100 x 100의 크기를 가진 도화지에서 색종이가 입력으로 주어질 때 색종이가 붙여진 넓이를 구하는 문제입니다.
먼저 빠른 입력을 위해서 Buffer로 입력을 받아주고, 100x100의 도화지를 의미하는 paper배열을 초기화해 줍니다.
그리고 StringTokenizer를 사용하여 공백을 기준으로 각 도화지의 왼쪽 아래의 point를 x와 y에 저장을 해줍니다.
문제에서 나와있듯이 색종이는 가로, 세로 10의 크기를 가진 색종이라고 얘기했기 때문에 (x, y)의 위치만 알아도 색종이의 크기를 알 수 있습니다.
25번째 줄에서 이중 for문을 사용하여 색종이의 크기만큼 도화지에 1을 넣어줍니다.
그리고 32번째 줄에서 도화지 전체를 순회하면서 1인 경우 즉 색종이가 붙여져 있는 경우 넓이를 증가시켜 주고, 이후에 넓이 size를 최종적으로 반환하여 넓이를 구해줍니다.

처음에는 위 그림의 빨간색 공간처럼 중복되는 공간을 어떻게 처리를 해야 할까 고민을 했습니다.
결론적으로 중복된 공간을 계산하는 문제는 없습니다. 이 코드는 각 색종이의 위치에 대해 도화지의 2차원 배열에 1로 표시합니다.
왜냐하면 각 색종이의 넓이가 1로 덮어 쓰이기 때문에 중복된 부분은 자연스럽게 여러 번 1로 덮어 쓰여도 계산에는 영향을 주지 않습니다.
참고❗️
[JAVA] 입출력, BufferedReader, StringTokenizer, StringBuilder 알아보기
Java로 코딩테스트를 보거나 입력을 사용해야 할 때 Scanner 클래스를 사용하면 편리하지만 속도가 느리다는 단점이 있습니다. 그렇기 때문에 속도가 빠른 BufferReader 클래스를 사용을 하면 시간복
pixx.tistory.com
'Coding Test > 백준' 카테고리의 다른 글
| [백준] 2×n 타일링 2 (동적계획법, DP, 11727번, Java) (0) | 2024.07.16 |
|---|---|
| [백준] 듣보잡 (HashSet, HashMap, getOrDefault, contains, sort, 1764번, Java) (0) | 2024.07.16 |
| [백준] 요세푸스 문제 (큐, Queue, BufferReader, 1158번, Java) (0) | 2024.07.15 |
| [백준] 영화감독 숌 (브루트 포스, contains, 1436번, Java) (1) | 2024.07.14 |
| [백준] 2 x n 타일링 (동적 계획법, DP, 11726번, Java) (0) | 2024.07.13 |