#Algorithm
문제 번호
15500번(S2) : 이상한 하노이탑
알고리즘 + 이론
그리디인것 같음
정답 코드
# 15500번 이상한 하노이 탑
# 그리디로 풀면 될 거 같은데?
# 가장 큰 값 전까지 1,2 계속 추가
# 큰 값 만나면 1,3
from collections import deque
N = int(input())
plate = list(map(int,input().split()))
plate = deque(plate)
rod = deque([])
max_plate = N
path = []
while max_plate != 0:
if max_plate in plate:
temp = plate.pop()
if temp == max_plate:
path.append([1,3])
max_plate -= 1
else:
rod.append(temp)
path.append([1,2])
else:
temp = rod.pop()
if temp == max_plate:
path.append([2,3])
max_plate -= 1
else:
plate.append(temp)
path.append([2,1])
print(len(path))
for i in path:
print(*i)
느낀점 & 피드백
변수를 최대한 적게 사용하고 싶었지만 방법이 안 떠올라 그냥 많이 사용함
이 글이 도움이 되셨나요?