728x90
Programmers
[카카오 인턴] 키보드 누르기
https://school.programmers.co.kr/learn/courses/30/lessons/67256
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
코드
- 좌표를 이용해서 거리 계산하는 방법 활용
- 딕셔너리 구조를 활용
- key[str(i)] 형태가 아닌 key['i']를 사용하면 오류가 발생함
def solution(numbers, hand):
answer = ''
key = {'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, right = key['*'], key['#']
for i in numbers:
if i in [1, 4, 7]:
answer += 'L'
left = key[str(i)]
elif i in [3, 6, 9]:
answer += 'R'
right = key[str(i)]
else:
left_dis = abs(left[0] - key[str(i)][0]) + abs(left[1] - key[str(i)][1])
right_dis = abs(right[0] - key[str(i)][0]) + abs(right[1] - key[str(i)][1])
if left_dis > right_dis:
answer += 'R'
right = key[str(i)]
elif left_dis < right_dis:
answer += 'L'
left = key[str(i)]
else:
if hand == 'right':
answer += 'R'
right = key[str(i)]
else:
answer += 'L'
left = key[str(i)]
return answer
728x90
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스] 성격 유형 검사하기 - 파이썬 (0) | 2024.05.17 |
---|---|
[프로그래머스] 로또의 최고 순위와 최저 순위 - 파이썬 (0) | 2024.05.16 |
[프로그래머스] [PCCE 기출문제] 9번 / 이웃한 칸 - 파이썬 (0) | 2024.05.09 |
[프로그래머스] 크레인 인형뽑기 게임 - 파이썬 (0) | 2024.05.09 |
[프로그래머스] 체육복 - 파이썬 (0) | 2024.05.09 |