반응형

Prob


Approach

시간 초과가 나와서 다른 글들을 본 결과.. Python 으론 고난이도 문제라고 한다...

다른 방법들을 찾았지만 딱히.. 해결하지 못했다..

아이러니한건 pypy3 에서는 제출 가능..

 

모든 경우를 찾아야 하므로 브루트 포스다.


Code

def m_check(x):
    for j in range(x):
        if m_row[x] == m_row[j] or abs(m_row[x] - m_row[j]) == x - j:
            return False
    return True

def dfs(x):
    global res

    if x == N :
        res += 1
    else:
        for i in range(N):
            m_row[x] = i
            if m_check(x):
                dfs(x + 1)

if __name__ == "__main__" :
    N = int(input())
    m_row = [0] * N
    res = 0
    dfs(0)
    print(res)

 

출처

https://www.acmicpc.net/problem/9663

반응형

'프로젝트 > Baekjoon' 카테고리의 다른 글

BAEKJOON PYTHON 14888 연산자 끼워넣기  (0) 2021.09.02
BAEKJOON PYTHON 2580 스도쿠  (0) 2021.09.02
BAEKJOON PYTHON 15652 N과 M (4)  (0) 2021.09.02
BAEKJOON PYTHON 15651 N과 M (3)  (0) 2021.09.02
BAEKJOON PYTHON 15650 N과 M (2)  (0) 2021.08.31
블로그 이미지

Refrin

일상생활 끄적 IT 프로젝트 끄적