BOJ 1799 비숍
·
알고리즘
문제 링크 : https://www.acmicpc.net/problem/1799 문제 해설체스판 위에 비숍을 겹치지 않게 놓는 문제입니다.마음같아선 브루트 포스로 전부 찾아보고 싶지만 시간초과가 나기 때문에 효율적인 방법을 찾아야합니다.먼저, 비숍을 놓을 수 있는 칸을 흑과 백으로 나눕니다.(비숍은 대각선으로만 움직이기 때문에 서로 다른 색의 칸에는 영향을 못 줍니다.)비숍을 놓을 수 있는 위치를 흑백으로 나눴다면 백트래킹을 통해 가능한 비숍의 최대 개수를 각각 구합니다.(대각선은 i + j와 i - j + (N - 1)음수방지 로 2차원 배열이 아닌 1차원 배열로 구현 가능합니다.) 코드더보기import Foundationif let n = Int(readLine()!) { var board = ..