본문 바로가기

알고리즘/백준 문제풀이

백준 2563 - 색종이(Kotlin)

728x90

https://www.acmicpc.net/problem/2563

 

2563번: 색종이

가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록

www.acmicpc.net

문제 접근

좌표를 이차원 배열로 만들어 검은색 종이가 가리는 범위를 구하는 문제

검은색 범위가 가리는 부분을 1씩 증가시켜 전체 이차원배열중 0이 아닌부분의 개수를 구하는 식으로 해결함

 

정답 코드

import java.util.*

fun main(args: Array<String>): Unit = with(Scanner(System.`in`)) {
    var n = nextInt()
    val arr = Array(101) { IntArray(101) }
    while (n-- > 0) {
        val x = nextInt()
        val y = nextInt()
        for (i in x..x + 9) {
            for (j in y..y + 9) {
                arr[i][j] += 1
            }
        }
    }
    var ans = 0
    for (i in 1..100) {
        for (j in 1..100) {
            if (arr[i][j] >= 1)
                ans++
        }
    }
    print(ans)
}