코딩테스트 연습 - 키패드 누르기 | 프로그래머스 (programmers.co.kr)
def solution(numbers, hand):
dist = [[3, 1, 0, 1, 2, 1, 2, 3, 2, 3], [2, 2, 1, 2, 1, 0, 1, 2, 1, 2], [1, 3, 2, 3, 2, 1, 2, 1, 0, 1], [0, 4, 3, 4, 3, 2, 3, 2, 1, 2]]
answer = ''
now_left = 0
now_right = 0
for i in numbers:
if i == 1 or 4 or 7:
answer += 'L'
now_left = i
elif i == 3 or 6 or 9:
answer += 'R'
now_right = i
else:
if i == 2:
if dist[0][now_left] > dist[0][now_right]:
answer += 'R'
now_right = i
elif dist[0][now_left] < dist[0][now_right]:
answer += 'L'
now_left = i
else:
if hand == 'right':
answer += 'R'
now_right = i
else:
answer += 'L'
now_left = i
elif i == 5:
if dist[1][now_left] > dist[1][now_right]:
answer += 'R'
now_right = i
elif dist[1][now_left] < dist[1][now_right]:
answer += 'L'
now_left = i
else:
if hand == 'right':
answer += 'R'
now_right = i
else:
answer += 'L'
now_left = i
elif i == 8:
if dist[2][now_left] > dist[2][now_right]:
answer += 'R'
now_right = i
elif dist[2][now_left] < dist[2][now_right]:
answer += 'L'
now_left = i
else:
if hand == 'right':
answer += 'R'
now_right = i
else:
answer += 'L'
now_left = i
else:
if dist[3][now_left] > dist[3][now_right]:
answer += 'R'
now_right = i
elif dist[3][now_left] < dist[3][now_right]:
answer += 'L'
now_left = i
else:
if hand == 'right':
answer += 'R'
now_right = i
else:
answer += 'L'
now_left = i
return answer
print(solution([1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5], 'right'))
어려워..
'Computer Science > 자료구조' 카테고리의 다른 글
[6.10] 프로그래머스 코딩테스트 연습 - 두 정수 사이의 합(12/100) (0) | 2021.06.10 |
---|---|
[6.9] 프로그래머스 코딩테스트 연습 - 같은 숫자는 싫어(11/100) (0) | 2021.06.09 |
[6.8] 프로그래머스 코딩테스트 연습 - 크레인 인형뽑기 게임(9/100) (0) | 2021.06.08 |
[6.7] 프로그래머스 코딩테스트 연습 - 모의고사 (8/100) (0) | 2021.06.07 |
[6.7] 프로그래머스 코딩테스트 연습 - 소수 만들기(7/100) (0) | 2021.06.07 |