🤔 문제
https://programmers.co.kr/learn/courses/30/lessons/67256?language=python3
😀 풀이
간단한 구현 문제라 가벼운 설명과 코드만 첨부하겠습니다.
문제 조건에 맞게 눌러야 하는 손을 정해주고 누른 후 해당 손의 위치를 바꿔주며 답을 만들어 나가면 되는 문제였습니다!
💻 풀이 코드는 아래와 같습니다.
def solution(numbers, hand):
answer = ''
leftHand, rightHand = [0, 3], [2, 3]
keyPadMap = dict()
keyPadMap[0] = [1, 3]
for i in range(1, 10):
keyPadMap[i] = [(i - 1) % 3, (i - 1) // 3]
leftNumbers = [1,4,7]
rightNumbers = [3,6,9]
for number in numbers:
if number in leftNumbers:
answer += "L"
leftHand = keyPadMap[number]
elif number in rightNumbers:
answer += "R"
rightHand = keyPadMap[number]
else:
x, y = keyPadMap[number]
leftDist = abs(leftHand[0] - x) + abs(leftHand[1] - y)
rightDist = abs(rightHand[0] - x) + abs(rightHand[1] - y)
# 가까운거 체크
if leftDist > rightDist or (leftDist == rightDist and hand == "right"):
answer += "R"
rightHand = [x, y]
elif rightDist > leftDist or (leftDist == rightDist and hand == "left"):
answer += "L"
leftHand = [x, y]
return answer
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 신고 결과 받기 - Python (0) | 2022.01.18 |
---|---|
[프로그래머스] 합승 택시 요금 - Python (0) | 2022.01.15 |
[프로그래머스] 거리두기 확인하기 - Python (0) | 2022.01.13 |
[프로그래머스] 무지의 먹방 라이브 - Python (1) | 2022.01.01 |
[프로그래머스] 문자열 압축 - Python (0) | 2021.12.30 |