108152 백준 알고리즘 9663번: N-Queen (Python) 문제 정보 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 핵심 1. 백트래킹을 사용하되, 시간복잡도를 고려할 것 퀸을 놓을 수 있는 경우의 수는 어마무시하기 때문에, 시간복잡도를 고려해주지 않으면 엄청난 실행시간이 소요된다 2. 2차원 배열을 사용하지 말것 2차원 배열을 사용하면 직관적으로 퀸이 놓을수 있는 위치를 파악할 수는 있지만 매우 비효율적인 방법이다. 2차원 배열을 사용하지 않고도, 1차원 배열로 문제를 풀이할 수 있다 (아래에서 설명) 3. Python으로 굳이 제출하지 말것 이건 백준 알고리즘 질문게시판에서 본.. 알고리즘/Python 2023. 6. 17. 백준 알고리즘: 10815번 숫자 카드 (Python) 문제 정보 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 핵심 이제 가장먼저, 입력 허용 범위와 개수부터 파악을 하고 들어가는 습관을 가지게 되었다! N의 개수가 많지 않으므로 Sorting Algorithm에 대해서 큰 생각을 하지 않아도 되고(최악의 경우가 아니라면) 값의 숫자의 범위가 넓으므로 배열을 통한 비교도 효율적이지 않을 것이라 생각하였다 따라서 그냥 먼저 정석적으로 이분 탐색을 사용하여 풀이해 보았다 풀이 import sys from bisect import bis.. 알고리즘/Python 2023. 5. 17. 이전 1 다음