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()
ps/problems/boj/3344.txt · 마지막으로 수정됨: 2021/11/30 16:24 저자 teferi
토론