728x90
https://www.acmicpc.net/problem/2567
문제 접근
- 검은색 영역의 둘레를 구하는 문제
- 하얀 영역은 0 검은 영역은 1로 처리
- 1에 인접한 0의 개수를 구하는 문제
정답 코드
import java.util.*
fun main(args: Array<String>): Unit = with(Scanner(System.`in`)) {
//이차원 배열 위에 0과 1로 표시
val arr = Array(101){IntArray(101)}
var n = nextInt()
while(n-- > 0){
val x = nextInt()
val y = nextInt()
for (i in x until x+10){
for (j in y until y+10){
arr[i][j] = 1
}
}
}
//1이 접하고있는 0의 개수
//가로 세로 구분해서 탐색
var ans = 0
for (i in 0 until arr.size){
for (j in 0 until arr.size){
if (arr[i][j] == 0){
//가로 길이
if (i+1 < arr.size && arr[i+1][j] != 0 ){
ans++
}
if (i!=0 &&arr[i-1][j] !=0){
ans++
}
//세로 길이
if (j+1< arr.size && arr[i][j+1] != 0 ){
ans++
}
if(j!=0 &&arr[i][j-1] !=0){
ans++
}
}
}
}
print(ans)
}
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
백준 2606-바이러스(Kotlin) (0) | 2023.02.06 |
---|---|
백준 1260-DFS와 BFS(Kotlin) (0) | 2023.02.05 |
백준 2246 - 콘도 선정(Kotlin) (0) | 2023.01.31 |
백준 1051-숫자 정사각형(Kotlin) (0) | 2023.01.31 |
백준 2628 - 종이 자르기(Kotlin) (0) | 2023.01.31 |