사용 언어 - Python3
문제 - 키패드 누르기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답
단순 구현 (정답 맞춘 여부 X)
딕셔너리 형태로 저장
def solution(numbers, hand):
answer = ''
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]}
left_s = dic['*']
right_s = dic['#']
for i in numbers:
now = dic[i]
if i in [1, 4, 7]:
answer += 'L'
left_s = now
elif i in [3, 6, 9]:
answer += 'R'
right_s = now
else:
left_d = 0
right_d = 0
for a, b, c in zip(left_s, right_s, now):
left_d += abs(a-c)
right_d += abs(b-c)
if left_d < right_d:
answer += 'L'
left_s = now
elif left_d > right_d:
answer += 'R'
right_s = now
else:
if hand == 'left':
answer += 'L'
left_s = now
else:
answer += 'R'
right_s = now
return answer
레퍼런스
- 정답 깃허브
GitHub - yyeongeun/codingtest: 코딩테스트 공부
코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.
github.com
'Algorithm > 구현' 카테고리의 다른 글
[프로그래머스 lv 1] 실패율 (0) | 2023.05.28 |
---|---|
[프로그래머스 lv 1] 크레인 인형뽑기 게임 (0) | 2023.05.23 |
[프로그래머스 lv 1] 두 개 뽑아서 하기 (0) | 2023.05.21 |
[프로그래머스 lv 1] 3진법 뒤집기 (1) | 2023.05.21 |
[프로그래머스 lv 1] 내적 (0) | 2023.05.21 |
댓글