<로직 고민>
- 음 일단 이런 건 replace를 쓰라고 배웠지...!
- 왼손 쓸 때 숫자랑 오른손 쓸 때 숫자를 묶어야겠군 근데 리스트가 좋을지 딕셔너리가 좋을지 모르겠다
- 손은 하나 숫자는 여러 개니까 리스트가 나을 듯..??
- 리스트에는 replace를 못 쓰는구나..ㅎ
def solution(numbers, hand):
answer = ""
left = [1, 4, 7]
right = [3, 6, 9]
for l in range(3):
numbers = str(numbers).replace(str(left[l]), "L")
numbers = str(numbers).replace(str(right[l]), "R")
print(numbers)
return
print(solution([1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5], "right"))
print(solution([7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2], "left"))
print(solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 0], "right"))
- 근데 이러면 2,5,8,0을 어떻게 할 수가 없을 거 같다
- 이전 값과 비교를 해야 하는데 그냥 해당하는 거 다 바꾸니까....흠...
- 원래의 numbers를 먼저 돌려서 2,5,8,0부터 해치우고 L,R을 붙이는 게 좋을 듯?
- 음..모르겠다....후 결국 힌트 봤다
- 아 이거 좌표 문제네....좌표.....
<완성된 코드>
def solution(numbers, hand):
answer = ''
keypad = {1:(0,0), 2:(1,0), 3:(2,0),
4:(0,1), 5:(1,1), 6:(2,1),
7:(0,2), 8:(1,2), 9:(2,2),
0:(1,3)}
left, right = (0,3), (2,3)
for number in numbers:
# 왼쪽 키패드
if number in [1,4,7]:
answer += "L"
left = keypad[number]
# 오른쪽 키패드
elif number in [3,6,9]:
answer += "R"
right = keypad[number]
# 가운데 키패드
else:
# 현재 손가락 위치와 키패드 간의 거리 계산
left_distance = abs(keypad[number][0]-left[0]) + abs(keypad[number][1]-left[1])
right_distance = abs(keypad[number][0]-right[0]) + abs(keypad[number][1]-right[1])
# 왼쪽이 더 가까울 때
if left_distance < right_distance:
answer += "L"
left = keypad[number]
# 오른쪽이 더 가까울 때
elif left_distance > right_distance:
answer += "R"
right = keypad[number]
# 거리가 똑같을 때
else:
if hand == "left":
answer += "L"
left = keypad[number]
else:
answer += "R"
right = keypad[number]
return answer
print(solution([1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5], "right")) # LRLLLRLLRRL
print(solution([7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2], "left")) # LRLLRRLLLRR
print(solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 0], "right")) # LLRLLRLLRL
<느낀 점>
- 이번에는 다른 사람 풀이는 안 가져왔다
- 다 내 풀이와 로직이 비슷한 거 같다
- 나도 구글링을 찾아서 온전히 내 코드라고 할 수는 없지만
- 그래도..!!! 보고 따라 쓴 게 아니라 힌트 보고 이해해서 쭉 써나간 거니까 ...한 28% 정도는 내 코드라고 할 수 있지 않을까?
- 여튼 이 문제로 이제 좌표 문제는 잘 풀 수 있을 거 같기도 하고....
- 아니 또 다른 문제를 만나면 난 또 응용하길 어려워 하겠지...휴
- 2시간만에 푼 거 실화인가..?