Data Analyst KIM
[프로그래머스Lv1] 키패드 누르기(파이썬) 본문
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 문제를 풀기 위해서는 현재 눌린 곳의 좌표를 표시하는 것이 좋아보였다.
그래서 dic이라는 키패드의 좌표를 만들었다.
거리가 같을 경우에는 hand와 동일
거리가 다를 경우에는 가까운 손으로 눌리도록 코딩
난이도가 그렇게 어렵지는 않았지만 시간은 조금 걸린 문제였다!!!
def solution(numbers, hand):
answer = ''
dic = {1: [0, 3], 2: [1, 3], 3: [2, 3],
4: [0, 2], 5: [1, 2], 6: [2, 2],
7: [0, 1], 8: [1, 1], 9: [2, 1],
'*':[0, 0], 0: [1, 0], '#': [2, 0]}
L_start = dic['*']
R_start = dic['#']
for i in numbers :
now = dic[i]
if i in [1,4,7] :
answer += 'L'
L_start = now
elif i in [3,6,9] :
answer += 'R'
R_start = now
elif i in [0,2,5,8] :
# 좌표 거리 구하기
L_dis = abs(L_start[0]-dic[i][0])+abs(L_start[1]-dic[i][1])
R_dis = abs(R_start[0]-dic[0][0])+abs(R_start[1]-dic[i][1])
# 왼손이 가까울 경우
if L_dis < R_dis :
answer += 'L'
L_start = now
elif L_dis > R_dis :
answer += 'R'
R_start = now
else :
if hand == 'left' :
answer += 'L'
L_start = now
else :
answer += 'R'
R_start = now
return answer
반응형
'데이터 분석 > Coding Test' 카테고리의 다른 글
[코딩 동아리] 23.08.21 - Lv1.신고결과받기 & 키패드 누르기 (0) | 2023.08.21 |
---|---|
[프로그래머스Lv1] 신고 결과 받기(파이썬) (0) | 2023.08.17 |
[코딩 동아리] 23.08.11 (0) | 2023.08.15 |
[프로그래머스Lv.1] 콜라 문제(Python) (0) | 2023.08.10 |
[Coding Club] 23.07.21(프로그래머스-과일 장수) (0) | 2023.07.23 |