티스토리 뷰
🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12946
💡 구현 아이디어
A→C로 N개 원판을 이동하려면 A→B로 N-1개 원판을 이동하고 A→C로 원판을 이동해야한다.
💻 코드
import Foundation
func solution(_ n:Int) -> [[Int]] {
var path: [[Int]] = []
func hanoi(_ n: Int, _ start: Int, _ end: Int, _ sub: Int) {
if n == 1 {
path.append([start, end])
return
}
hanoi(n-1, start, sub, end)
path.append([start, end])
hanoi(n-1, sub, end, start)
}
hanoi(n, 1, 3, 2)
return path
}
❌ 틀린 이유 및 틀린 부분
⏳ 시간 복잡도
O(2^n): 한번의 함수에서 두개의 호출을 다시 진행
📌 풀이 또는 기억할 정보
'PS > 문제 풀이' 카테고리의 다른 글
| [프로그래머스/Swift] 134239번 - 우박수열 정적분 (0) | 2025.04.22 |
|---|---|
| [프로그래머스/Swift] 172927번 - 광물 캐기 (0) | 2025.04.22 |
| [프로그래머스/Swift] 388351번 - 유연근무제 (0) | 2025.04.14 |
| [프로그래머스/Swift] 81302번 - 거리두기 확인하기 (0) | 2025.04.13 |
| [프로그래머스/Swift] 12905번 - 가장 큰 정사각형 찾기 (0) | 2025.04.11 |
