파이썬
[Baekjoon] 9663_N-Queen #3
N - Queen 문제 중 한 종류인 8-Queen 문제이다. N - Queen 문제는 결국 n을 입력받아 n * n 사이즈 보드 안에 n개의 퀸을 겹치지 않고 배열할 수 있는 경우의 수가 얼마나 되는지를 세는 알고리즘이다. 문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (1 ≤ N < 15) 출력 첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 예시 입력과 출력은 다음과 같다. 이외에도 표로 나머지 경우를 정리하면 다음과 같다. n 1 2 3 4 5 6 7 8 경우의 수 1 0 0 2 10 4 40 92 이외에도 9..
[개인 프로젝트] Python으로 2048 게임 만들기 #2
지난 글에서는 2048 게임을 만들 때 생기는 버그에 대해 알아보았다. https://fclipse.tistory.com/18 [개인 프로젝트] Python으로 2048게임 만들기 # 1 버그 1. - a를 눌러 왼쪽으로 이동시켰는데 합쳐진 4는 사라지고, 그 자리에 2가 랜덤으로 생겨난 상황. - 작업 순서가 잘못된 듯하다. - 그럼에도 score은 제대로 올라감 Sol) - 원래는 4로 합쳐진 다 fclipse.tistory.com 이번 글에서는 2048 게임을 소개하고, 앞으로 최종 목표는 어떻게 될 것인지를 정하겠다. 먼저 이 프로젝트의 최종 목표는 '웹에 2048게임을 호스팅해서 누구나 쉽게 즐길 수 있게 하는 것'이다. 전체 코드는 다음 페이지에 소개되어 있다. https://github.co..
[Python] 스도쿠 풀이 프로그램 #3
저번 글에 이어 이 글에서는 어려운 스도쿠를 풀 수 있는 프로그램을 설명한다. 백트래킹을 이용해 이를 구현했고, 생각보다 정말 간단하게 구현이 되었다. 먼저 사용된 함수는 다음과 같다. def possibilities(i, j): global sudoku exist = [] for k in range(9): if sudoku[k][j] != 0: exist.append(sudoku[k][j]) if sudoku[i][k] != 0: exist.append(sudoku[i][k]) if sudoku[i//3*3 + k//3][j//3*3 + k%3] != 0: exist.append(sudoku[i//3*3 + k//3][j//3*3 + k%3]) unexist = [i for i in range(1, 1..