기본적인 퀸의 위치는 row와 col으로 결정된다고 하자.
이를 pos라고 하고 이를 생성하는 함수를 구성한다.
이제 empty-board, adjoin-position 을 정의한다.
다음으로 safe?를 만든다. k번째 퀸이 나머지 다른 퀸에서 안전하려면 이전에 위치가 안전하다는 가정하에서 시작한다.
따라서 safe? k 는 safe? k-1 번째 놓여진 position에 비해 안전하면 된다. 즉 row, col 값이 모두 다르고 대각선상에 있지않아야한다.
... 이하는 다음에 계속

이를 pos라고 하고 이를 생성하는 함수를 구성한다.
(define (make-pos row col)
(cons row col))
(define (position-row pos)
(car pos))
(define (position-col pos)
(cdr pos))
(define (position-equal? pos1 pos)
(equal? pos1 pos2))
이제 empty-board, adjoin-position 을 정의한다.
(define (empty-board) '())
(define (adjoin-position row col positions)
(append positions (make-pos row col)))
다음으로 safe?를 만든다. k번째 퀸이 나머지 다른 퀸에서 안전하려면 이전에 위치가 안전하다는 가정하에서 시작한다.
따라서 safe? k 는 safe? k-1 번째 놓여진 position에 비해 안전하면 된다. 즉 row, col 값이 모두 다르고 대각선상에 있지않아야한다.
... 이하는 다음에 계속

댓글 없음:
댓글 쓰기