재귀 호출 BASH 버전 :
#!/bin/bash
hanoi(){
if [ $1 -eq 1 ]; then
echo "move $1 from $2 to $3"
return
fi
hanoi $(( $1 - 1 )) $2 $4 $3
echo "move $1 from $2 to $3"
hanoi $(( $1 - 1 )) $4 $3 $2
}
hanoi 4 A B C 호출 결과 :
move 1 from A to C move 2 from A to B move 1 from C to B move 3 from A to C move 1 from B to A move 2 from B to C move 1 from A to C move 4 from A to B move 1 from C to B move 2 from C to A move 1 from B to A move 3 from C to B move 1 from A to C move 2 from A to B move 1 from C to B
Comment :
4개의 원판을 A에서 B로 옮기기 위해서는
1단계 - 3개의 원판을 A에서 C로 옮겨놓고
2단계 - 가장 아래에 있던 4번째 원판을 A에서 B로 옮긴 후
3단계 - 다시 C에 있던 3개의 원판을 B로 옮기면 된다.
1단계와 3단계는 출발지와 목적지 위치만 다를 뿐 완전히 동일하다.
참조 영상 :
'프로그래밍 > 기타' 카테고리의 다른 글
[Python3][2020카카오공채] 가사 검색 (0) | 2019.10.07 |
---|---|
[Python3][2020카카오공채] 괄호 변환 (0) | 2019.10.04 |
[Python3][2020카카오공채] 문자열 압축 (0) | 2019.10.03 |
[Python] json.dumps 한글 유니코드 (0) | 2019.04.05 |
[Python3] 카카오 코드 페스티벌 2018 예선 - 인형들 (0) | 2019.01.18 |
python-ldap Windows Active Directory unicodePwd userAccountControl DSID-031A120C (0) | 2018.12.20 |
티스토리 블로그 SSL(TLS) www <-> non-www 상호 전환 Javascript (7) | 2018.09.08 |
[Python3] Permutation (순열) (2) | 2018.08.04 |
최근에 달린 댓글 최근에 달린 댓글