크기작으니까 그냥 o(n^2)쓰면서 상하좌우중 0인거의 갯수만큼 다 더하면될듯
함수로 뺴는게 더깔끔할거같긴한데 귀찮다
정답
class Solution {
fun islandPerimeter(grid: Array<IntArray>): Int {
var res=0
for (i in grid.indices) {
for (j in grid[0].indices) {
if (grid[i][j] == 1) {
if (i+1>=grid.size){
res+=1
}else{
if(grid[i+1][j]==0){
res+=1
}
}
if (i-1<0){
res+=1
}else{
if(grid[i-1][j]==0){
res+=1
}
}
if (j+1>=grid[0].size){
res+=1
}else{
if(grid[i][j+1]==0){
res+=1
}
}
if (j-1<0){
res+=1
}else{
if(grid[i][j-1]==0){
res+=1
}
}
}
}
}
return res
}
}
'알고리즘' 카테고리의 다른 글
릿코드 165. Compare Version Numbers 코틀린 (0) | 2024.05.03 |
---|---|
릿코드 1289. Minimum Falling Path Sum II 코틀린 (0) | 2024.04.26 |
릿코드 988. Smallest String Starting From Leaf 코틀린 (0) | 2024.04.17 |
릿코드 623. Add One Row to Tree 코틀린 (0) | 2024.04.16 |
릿코드 129. Sum Root to Leaf Numbers 코틀린 (0) | 2024.04.15 |