20230627 [Java] 문제풀이
20230627 [Java] 문제풀이 [프로그래머스] 안전지대 행렬이 주어진다 1은 지뢰가 있는 곳 그리고 0은 지뢰가 없는 곳이다 지뢰 기준으로 8방면 (위, 아래, 좌, 우, 대각선) 모두 위험 지역이다 위험 지역이 아닌 곳의 개수를 찾으면 된다 1) 델타 탐색 (dr, dc) 를 통해 1을 발견하면 8방면을 2로 만들어 준다 2) 그렇게 위험 지역을 1과 2로 표시하고, 다시 2중 for문을 통해 안전 지역인 0을 세준다 class Solution { public int solution(int[][] board) { int answer = 0; int[] dr = {-1, -1, -1, 0, 0, 1, 1, 1}; int[] dc = {-1, 0, 1, -1, 1, -1, 0, 1}; for (in..
2023. 6. 27.
[Python] 백준 9663 N-Queen
🧑💻 [Python] 백준 9663 N-Queen Gold 4 - Backtracking Queen은 위, 아래, 오른쪽, 왼쪽, 대각선, 8 방면 모두 공격을 할 수 있다 N이 주어지고, 체스판 사이즈는 N x N 이고, N 개의 Queen을 넣었을 때 서로 공격할 수 없는 때의 경우의 수를 찾는 것 1차적으로 자세히 보면, 각 행과 열마다, Queen은 하나씩 배치할 수 있다 이 뜻은 굳이 체스판 자체를 안 만들어도 된다 board = [0, 3, 1, 4, 2] 아래 사진을 표현한 리스트 (board의 인덱스가 열/row, board의 값이 행/column) board 안에 있는 값들은 모두 달라야 한다 row (board의 인덱스) column (board의 값) 0 0 1 3 2 1 3 4 4..
2023. 4. 5.