소스 코드
def solution(numbers, hand):
answer = ''
# 왼손과 오른손의 초기 위치 값
left = [3, 0]
right = [3, 2]
for q in numbers:
if q == 1 or q == 4 or q == 7:
answer += 'L'
left = [q // 3, 0]
elif q == 3 or q == 6 or q == 9:
answer += 'R'
right = [q // 4, 2]
else:
if q == 2 or q == 5 or q == 8:
x = q // 3
else:
x = 3
# 목표 번호와 왼손, 오른손 과의 거리
left_distance = abs(left[0] - x) + abs(left[1] - 1)
right_distance = abs(right[0] - x) + abs(right[1] - 1)
if left_distance > right_distance:
answer += 'R'
right = [x, 1]
elif left_distance < right_distance:
answer += 'L'
left = [x, 1]
# 거리가 같은 경우 주로 사용하는 손에 따라 결정
else:
if hand == 'left':
answer += 'L'
left = [x, 1]
else:
answer += 'R'
right = [x, 1]
return answer
해결 방법
1. 왼손과 오른손의 현재 위치값을 저장하면서 확인해서 해결
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제풀이.프로그래머스' 카테고리의 다른 글
[프로그래머스 코딩] 튜플 - PYTHON (0) | 2021.08.20 |
---|---|
[프로그래머스 코딩] 신규 아이디 추천 - PYTHON (0) | 2021.07.28 |
[프로그래머스 코딩] 로또의 최고 순위와 최저 순위 - PYTHON (0) | 2021.07.27 |
[프로그래머스 코딩] 크레인 인형뽑기 게임 - PYTHON (0) | 2021.07.27 |
[프로그래머스 코딩] 숫자 문자열과 영단어 - PYTHON (0) | 2021.07.26 |