설계
- 1단계 문제치고는 구현이 꽤 복잡하였다.
- 붉은색으로 표시된 항목이 문제의 초기 조건이다.
- 딕셔너리를 일일이 직접 구현한 것이 무식해보이기는 하지만 규칙을 찾다가 모르겠어서 그냥 다 했다.
코드
def solution(numbers, hand):
answer = ''
left = '*'
right = '#'
dist = {
2:{
1:1,2:0,3:1,4:2,5:1,6:2,7:3,8:2,9:3,0:3,'*':4,'#':4
},
5:{
1:2,2:1,3:2,4:1,5:0,6:1,7:2,8:1,9:2,0:2,'*':3,'#':3
},
8:{
1:3,2:2,3:3,4:2,5:1,6:2,7:1,8:0,9:1,0:1,'*':2,'#':2
},
0:{
1:4,2:3,3:4,4:3,5:2,6:3,7:2,8:1,9:2,0:0,'*':1,'#':1
}
}
for n in numbers:
if n in (1,4,7):
answer += 'L'
left = n
elif n in (3,6,9):
answer += 'R'
right = n
else:
if dist[n][left] == dist[n][right]:
if hand == 'right':
answer += 'R'
right = n
else:
answer += 'L'
left = n
elif dist[n][left] > dist[n][right]:
answer += 'R'
right = n
else:
answer += 'L'
left = n
return answer