프로그래머스 - 안전지대 (Kotlin)

2023. 7. 26. 11:00·개인공부/알고리즘

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

나는 이 문제를 보고, 왜인지 모르게 완전탐색을 생각했다.(dfs, bfs) 폭탄인 부분의 주위를 안전하지 않은 상태(2)로 만들고 다음 0의 개수를 확인하고자 했다. 그런데 이는 너무 과하다는 생각이 들었다. 그리고 무엇보다 내가 풀이에 잘못 접근했었다..

 

지피티의 도움을 받아 해당 문제는 다음과 같이 풀이하였다.

 

  • 폭탄이 있는 지역(1)이면 다음 칸으로 넘어가고, 폭탄이 아닌 칸(0)이라면, 현 위치를 기준으로 9방면을 확인했다.
  • 범위를 벗어나거나, 주변의 값이 폭탄이 있는지역(1)이라면, 해당 지역을 안전하지 않는 지역으로 판단했다.

 

class Solution {
    fun solution(board: Array<IntArray>): Int {
        val n = board.size
        val dx = intArrayOf(-1, 1, 0, 0, -1, -1, 1, 1)
        val dy = intArrayOf(0, 0, -1, 1, -1, 1, -1, 1)
        var safeAreaCount = 0

        for (i in 0 until n) {
            for (j in 0 until n) {
                if (board[i][j] == 1) {
                    continue 
                }

                var isSafe = true
                for (k in 0 until 8) {
                    val nx = i + dx[k]
                    val ny = j + dy[k]

                    if (nx in 0 until n && ny in 0 until n && board[nx][ny] == 1) {
                        isSafe = false
                        break
                    }
                }

                if (isSafe) {
                    safeAreaCount++
                }
            }
        }

        return safeAreaCount
    }
}
728x90
저작자표시 (새창열림)

'개인공부 > 알고리즘' 카테고리의 다른 글

프로그래머스 - 다항식 더하기 (Kotlin)  (0) 2023.07.27
프로그래머스 - 숨어있는 숫자의 덧셈(2) (Kotlin)  (0) 2023.07.27
프로그래머스 - 외계어 사전 (Kotlin)  (0) 2023.07.24
프로그래머스 - 문자열 정렬하기(2) (Kotlin)  (0) 2023.07.24
프로그래머스 - 7의 개수 (Kotlin)  (0) 2023.07.24
'개인공부/알고리즘' 카테고리의 다른 글
  • 프로그래머스 - 다항식 더하기 (Kotlin)
  • 프로그래머스 - 숨어있는 숫자의 덧셈(2) (Kotlin)
  • 프로그래머스 - 외계어 사전 (Kotlin)
  • 프로그래머스 - 문자열 정렬하기(2) (Kotlin)
KEEMSY
KEEMSY
JUST DO IT
KEEMSY
목적, 수단, 목표
KEEMSY
전체
오늘
어제
  • 분류 전체보기
    • 회고
      • WIL
      • TIL
    • Project
    • 개인공부
      • 알고리즘
      • 아키텍처
      • 트러블슈팅
      • 테스팅
      • git
      • 배포

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

hELLO· Designed By정상우.v4.5.2
KEEMSY
프로그래머스 - 안전지대 (Kotlin)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.