이것은 숙제 문제입니다. Java에서 고전 n-Queens
문제에 대한 해결책을 쓰고 있습니다. 내 프로그램은 this처럼 보이지만 출력하는 대신 모든 법적 퀸즈 배치를 반환합니다. 나는 퀸즈 배치를 int[]
으로 나타내고, HashSet<int[]>
을 구현으로 사용하여 Set<int[]>
을 반환합니다. 게재 위치 순서가 중요하지 않으므로 Set
이 적합합니다.Java의 고전적인 n-Queens에 대한 구현 질문
Java 배열이 hashCode
을 덮어 쓰지 않으며 동일한 값을 가진 여러 배열 인스턴스가 서로 다른 해시 코드를 가지고 있다는 점이 문제입니다.
배열을 보유하고 을 Arrays.deepHashCode
으로 재정의하고 Set<QueensPlacement>
을 반환하는 래퍼 클래스 QueensPlacements
을 작성할 수 있습니다. 그러나 그것은 장황하고 비 숙련 된 것처럼 보입니다. 아무도 더 나은 해결책을 제안 할 수 있습니까?
래퍼 클래스가 아마도 더 좋을 것입니다. Set가 더 명확하게 보이기 때문에 우아하지 않습니다. 을 설정하십시오. 해시 코드처럼 int []를 사용하여 다른 문제를 해결합니다. 예를 들어, 정확히 n 명의 여왕이 있는지 확인하려면 어떻게해야합니까? 그 크기는 n입니까? –
Fakrudeen