재귀 알고리즘2 알고리즘 - 재귀 알고리즘(3) 8퀸 문제 여기서 말하는 퀸은 체스 말 중 하나인 Queen입니다. 퀸은 체스판에서 가로, 세로, 대각선으로 움직일 수 있는데 8퀸 문제는 8개의 퀸이 서로 공격했을 때, 잡을 수 없게 배치하는 문제입니다. 8퀸 문제도 하노이 탑과 마찬가지로 경우를 나누어 생각해보겠습니다. 1. 열에서 겹치지 않게, 2. 행에서 겹치지 않게, 3. 대각선으로 겹치지 않게입니다. 1. 열에서 겹치지 않게 pos = [0] * 8 # 각 열에서 퀸의 위치를 출력, pos[index] = x 일 때, index는 현재 열, x는 행 def put() -> None: # 각 열에 배치한 퀸의 위치를 출력 for i in range(8): print(f'{pos[i]:2}', end='') print() def set(i: in.. 2020. 11. 19. 알고리즘 - 재귀 알고리즘(1) 재귀는 어떠한 작업을 할 때, 자기 자신을 포함 및 사용하는 경우를 말합니다. 재귀를 사용하는 대표적인 예인 팩토리얼 문제를 보겠습니다. def factorial(n: int): if n > 0: return n * factorial(n-1) else: return 1 if __name__ == '__main__': n = int(input('출력할 팩토리얼 값을 입력: ')) print(f'{n}의 팩토리얼은 {factorial(n)}입니다.') 만약 3의 팩토리얼 값을 구한다고 했을 때 factorial(3)을 호출하면 3 * factorial(2)을 반환하고 factorial(2)는 다시 factorial(1)을, factorial(0)일 때는 1을 반환하게 됩니다. 그럼 factorial(1) -.. 2020. 11. 16. 이전 1 다음