honey_pot
[python] 키패드 누르기 본문
코드
def solution(numbers, hand):
dic = {1:[0,0], 2: [0,1], 3:[0,2],
4:[1,0], 5:[1,1], 6:[1,2],
7:[2,0], 8:[2,1], 9:[2,2],
'*':[3,0], 0:[3,1], '#':[3,2]}
res = ''
l_now = dic['*']
r_now = dic['#']
l = [1, 4, 7]
r = [3, 6, 9]
mid = [2, 5, 8, 0]
for i in numbers:
if i in l:
res += 'L'
l_now = dic[i]
elif i in r:
res += 'R'
r_now = dic[i]
elif i in mid:
l_d=0
r_d=0
for a,b,c in zip(l_now, r_now, dic[i]):
l_d += abs(a-c)
r_d += abs(b-c)
if l_d < r_d:
res += 'L'
l_now = dic[i]
elif l_d > r_d:
res += 'R'
r_now = dic[i]
else:
if hand == 'left':
res += 'L'
l_now = dic[i]
else:
res += 'R'
r_now = dic[i]
return res
좌표로 만들어서 풀어보고 싶어서 if문 부분을 다 정리하고 나서 좌표를 넣고 출력하는데 계속 오답이어서 결국 다른 풀이를 찾아봄
l_d += abs(a-c)
r_d += abs(b-c)
디버깅해보니 이 부분에서 +=가 아닌 =로 풀었더니 거리가 0 아니면 1로 나와서 계속 손 따라 RL이 저장돼서였다
'문제 풀이' 카테고리의 다른 글
[python] 비밀지도 (0) | 2021.09.09 |
---|---|
[python] 폰켓몬 (0) | 2021.09.08 |
[python] 숫자 문자열과 영단어 (0) | 2021.09.01 |
[python] 실패율 (0) | 2021.08.30 |
[python] 모의고사 (0) | 2021.08.30 |
Comments