문제링크
https://programmers.co.kr/learn/courses/30/lessons/67256
내풀이
def get_distance(now, target):
w = [[1,2,3],[4,5,6],[7,8,9],['*',0,'#']]
l = [[1,4,7,'*'],[2,5,8,0],[3,6,9,'#']]
for i in range(len(w)):
if now in w[i]:
nw = i
if target in w[i]:
tw = i
for i in range(len(l)):
if now in l[i]:
nl = i
if target in l[i]:
tl = i
return abs(nw-tw) + abs(nl-tl)
def solution(numbers, hand):
answer = ''
left, right = '*', '#'
for n in numbers:
if n in [1,4,7]:
answer += 'L'
left = n
if n in [3,6,9]:
answer += 'R'
right = n
if n in [2,5,8,0]:
ld = get_distance(left, n)
rd = get_distance(right, n)
if ld < rd:
answer += 'L'
left = n
elif ld > rd:
answer += 'R'
right = n
elif hand == 'left':
answer += 'L'
left = n
else:
answer += 'R'
right = n
return answer
피드백
- 거리 구할 때 w, l 나눌 필요 없었음
- 풀이 방법 다양함
'코딩 문제 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 실패율 (python) (0) | 2022.05.09 |
---|---|
[프로그래머스] 크레인 인형뽑기 게임 (python) (0) | 2022.05.09 |
[프로그래머스] 숫자 문자열과 영단어 (python) (0) | 2022.05.06 |
[프로그래머스] 신규 아이디 추천 (python) (0) | 2022.05.06 |
[프로그래머스] 신고 결과 받기 (python) (0) | 2022.05.05 |