일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ㅂㅂ
- 구글애널리틱스
- 니다
- 알파줄거리
- 구글애널리틱스4
- Python
- 프로그래머스
- GA4
- 영화 올드 줄거리
- 코오롱베네트
- 6시 기상
- 티스토리
- 데이터 분석
- 수명예측 인공지능
- 미라클 모닝
- GA
- 독서
- Google Analytics
- 벚꽃
- 명상
- 채용공고
- 얼음여왕
- 데이터문해력
- 기사스크랩
- 감사인사
- 벚꽃개화시기
- 코딩
Archives
- Today
- Total
Data Analyst KIM
[프로그래머스Lv1] 키패드 누르기(파이썬) 본문
반응형
이 문제를 풀기 위해서는 현재 눌린 곳의 좌표를 표시하는 것이 좋아보였다.
그래서 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 |