- Code 1: https://github.com/siddg97/Npuzzle
- 맨하탄 거리
- 세부실행과정 없음(Depth, Count, Time 등만)
- no solution 고려
- Code 2: https://github.com/Subangkar/N-Puzzle-Problem-CPP-Implementation-using-A-Star-Search
- Linear Conflict , Manhattan distance, Hamming Distance,
- 세부실행과정 있음.
- no solution 고려
실행(4x4 puzzle)
4×4도 쉽지 않음.
Code 1
puzzle1(1초, 53번)
![](https://velog.velcdn.com/images/sjinu/post/a468cbaf-b625-493d-88d4-d19e9ff5d0ef/image.png)
- 반복해도 마찬가지(1초 이내).
- Code 2에 비해 수십배 빠르다.
puzzle2(8초, 52)
![](https://velog.velcdn.com/images/sjinu/post/8872cfe2-40df-4888-9409-db78388cc529/image.png)
puzzle3(0.05초, 48번)
![](https://velog.velcdn.com/images/sjinu/post/81455a67-80d6-4f2f-8a6d-329dae526719/image.png)
- Code2에 비해 수십배 빠르다(답 동일).
- 다만 아쉬운 건 역시 실행 과정이.. (따로 커스텀하면 되긴 함)
Code 2(과정 존재)
Same to Easy puzzle in code 1(53초, 53번)
![](https://velog.velcdn.com/images/sjinu/post/3793eebe-d519-44fd-8314-a48db79b6f97/image.png)
![](https://velog.velcdn.com/images/sjinu/post/65894dc4-88a3-4131-afeb-9793b306e54a/image.png)
puzzle2
![](https://velog.velcdn.com/images/sjinu/post/66e035cd-69b3-4015-a94b-8bccd3e44a4f/image.png)
puzzle 3(2-23초, 48번)
Code 2에서 답을 구할 수 있는 예제를 사용함.
![](https://velog.velcdn.com/images/sjinu/post/951dc4f2-5d12-4b20-b64b-d552cb3c25ab/image.png)
세부 실행 과정
![](https://velog.velcdn.com/images/sjinu/post/5be4faa2-12c3-4b8b-8187-4afe8bcd661a/image.png)
(계속)
![](https://velog.velcdn.com/images/sjinu/post/99903438-74aa-4beb-a1df-8058455c2f56/image.png)
- 역시 Code 1에 비해 수십배 느리다(답은 동일).
중간 결론
- Code1과 Code2의 차이점 분석
- 보아하니 알고리즘 자체도 다를 것 같지만, 만약 알고리즘이 같은데도 불구하고 실행시간이 차이난다면, 실행 시간에 악영향을 끼치는 요소를 파악한 뒤 나중에 알고리즘 짤 때 주의할 필요가 있음.
- Code1을 기반으로 알고리즘을 작성하고, 보완해나가되 Code2의 Print function들만 참고.
- 성능은 구린데 출력 인터페이스가 이해를 돕는데 훌륭