일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 기사스크랩
- 얼음여왕
- 데이터 분석
- 벚꽃
- Python
- ㅂㅂ
- 구글애널리틱스4
- 코오롱베네트
- 6시 기상
- 영화 올드 줄거리
- 채용공고
- 수명예측 인공지능
- 알파줄거리
- 구글애널리틱스
- 벚꽃개화시기
- 니다
- 미라클 모닝
- 명상
- GA4
- 독서
- 데이터문해력
- 감사인사
- 코딩
- 티스토리
- 프로그래머스
- 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' 카테고리의 다른 글
[프로그래머스_SQL] Lv3_오랜 기간 보호한 동물(1) (0) | 2023.10.16 |
---|---|
[프로그래머스Lv1] 신고 결과 받기(파이썬) (0) | 2023.08.17 |
[프로그래머스Lv.1] 콜라 문제(Python) (0) | 2023.08.10 |
[프로그래머스Lv.1] 과일 장수 - 파이썬 (0) | 2023.07.20 |
[프로그래머스Lv.1] 다트 게임 - 파이썬 (0) | 2023.07.13 |