해결을 하신 분은 아래를 보세요.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
EightQueenProblem을 해결하신 것을 축하드립니다.
EightQueenProblem 페이지에 개발 시간과 소스 라인 수 등을 기록하셨나요? 사실 문제는 하나가 더 있습니다. 대부분의 프로그래밍 숙제/대회는 코드의 디자인은 잘 따지지 않습니다. 하지만 실세계의 문제에서는 코드의 적응도(adaptability)가 매우 중요한 요소가 됩니다. 자신이 작성한 프로그램이 얼마나 새로운 요구사항에 잘 적응을 하는지를 보면, 자신이 얼마나 디자인을 제대로 혹은 엉망으로 했는지 알 수 있습니다. 디자인 질에 대한 바로미터가 되는 것이죠.
새 문제는 다음과 같습니다. 자신이 작성한 프로그램을 수정을 해서,
EightQueenProblem의 일반적인 문제를 푸는 것입니다. 즉, 8X8에서 8개의 여왕을 배치하는 서로 다른 모든 해법(총 92가지)을 구하는 것입니다.
"소스수정 없음"은 잘 이해가 되지 않습니다. 첫번째와 두번째의 요구사항, 즉 기대하는 결과가 다르다는 점을 생각할 때 프로그램이 조금이라도 달라져야 합니다. 분명 처음에는 모든 해를 구하라는 요구조건이 없었는데 그렇게 했다면 당시로서는 그건 YAGNI(You Aren't Gonna Need It)이거나 혹은 고객이 원하지 않는 프로그램 아닐까요?
글을 잘못 이해했습니다. 단순히 두 라인을 주석처리 하는것이라 시간이 들지 않은것이 아닌가 라는 생각을 했었는데, 아니었네요. 정정했습니다. -이선우
처음 문제에 '모든 해를 구해서는 안된다' 라는 말도 없고, '모든 해를 구하라' 라는 말도 없는데.. 제가 문제 이해를 잘못한건가요..? 지적해 주셔서 감사합니다 - 임인택
만약 이 모든 것을 완료했고, 뭔가 더 도전할 것을 찾는다면, N-Queens Problem을 풀면 됩니다. (요구사항의 또 다른 변화!
) NXN 체스판에서 N개의 여왕을 배치하는 프로그램이 되도록 수정하는 겁니다.
DeleteMe) 처음부터 랜덤으로 나올수 있게 구현했는데 92가지의 방법을 모두 출력해야 하나요?
네. 만약 그렇게 되도록 프로그램을 수정하는데 어려움이 있거나 시간이 많이 걸린다면 처음 디자인이 그다지 적응도가 높지 못했다는 반증일 수 있겠죠.
저의 경우가 그렇지요..ㅡㅡ 소스를 어케 만들었길래 고치는데.. 헤매는지.. 쿨럭.. --선호.