728x90
문제설명
입력 & 출력
나의 풀이
이번 문제는 100 x 100의 크기를 가진 도화지에서 색종이가 입력으로 주어질 때 색종이가 붙여진 넓이를 구하는 문제입니다.
먼저 빠른 입력을 위해서 Buffer로 입력을 받아주고, 100x100의 도화지를 의미하는 paper배열을 초기화해 줍니다.
그리고 StringTokenizer를 사용하여 공백을 기준으로 각 도화지의 왼쪽 아래의 point를 x와 y에 저장을 해줍니다.
문제에서 나와있듯이 색종이는 가로, 세로 10의 크기를 가진 색종이라고 얘기했기 때문에 (x, y)의 위치만 알아도 색종이의 크기를 알 수 있습니다.
25번째 줄에서 이중 for문을 사용하여 색종이의 크기만큼 도화지에 1을 넣어줍니다.
그리고 32번째 줄에서 도화지 전체를 순회하면서 1인 경우 즉 색종이가 붙여져 있는 경우 넓이를 증가시켜 주고, 이후에 넓이 size를 최종적으로 반환하여 넓이를 구해줍니다.
처음에는 위 그림의 빨간색 공간처럼 중복되는 공간을 어떻게 처리를 해야 할까 고민을 했습니다.
결론적으로 중복된 공간을 계산하는 문제는 없습니다. 이 코드는 각 색종이의 위치에 대해 도화지의 2차원 배열에 1로 표시합니다.
왜냐하면 각 색종이의 넓이가 1로 덮어 쓰이기 때문에 중복된 부분은 자연스럽게 여러 번 1로 덮어 쓰여도 계산에는 영향을 주지 않습니다.
참고❗️
'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 |