사용자 도구

사이트 도구


ps:problems:boj:3344

N-Queen

ps
링크acmicpc.net/…
출처BOJ
문제 번호3344
문제명N-Queen
레벨플래티넘 4
분류

애드혹

시간복잡도O(n)
인풋사이즈n<=99999
사용한 언어Python
제출기록34876KB / 100ms
최고기록100ms
해결날짜2021/11/23

풀이

  • N-queen 배치 문제에서에 아무 솔루션 한개를 찾는 문제.
  • n-queen을 계단형으로 배치하는 방법을 그대로 구현하면 O(n)에 솔루션을 찾을 수 있다.
  • 이 문제에서는 특정 N값에 대해서만 묻고 있는데, 이것을 임의의 N으로 확장한 문제는 N-Queen 2에 있다.

코드

"""Solution code for "BOJ 3344. N-Queen".

- Problem link: https://www.acmicpc.net/problem/3344
- Solution link: http://www.teferi.net/ps/problems/boj/3344
"""


def main():
    N = int(input())

    if N % 6 == 2:
        ans = [*range(2, N + 1, 2), 3, 1, *range(7, N + 1, 2), 5]
    elif N % 6 == 3:
        ans = [*range(4, N + 1, 2), 2, *range(5, N + 1, 2), 1, 3]
    else:
        ans = [*range(2, N + 1, 2), *range(1, N + 1, 2)]

    print(*ans, sep='\n')


if __name__ == '__main__':
    main()

토론

댓글을 입력하세요:
F K​ K N P
 
ps/problems/boj/3344.txt · 마지막으로 수정됨: 2021/11/30 16:24 저자 teferi