반응형
프로그래머스 문제
키패드 누르기
https://school.programmers.co.kr/learn/courses/30/lessons/67256
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
"""
1 4 7 =
3 6 9 =
2 5 8 0 = 가까운 쪽, 같다면 오른속잡이, 왼손잡이
"""
def solution(numbers, hand):
answer = ''
left = 10
right = 12
for i in range(len(numbers)):
#print(left, right)
if numbers[i] == 0:
numbers[i] = 11
if numbers[i] == 1 or numbers[i] == 4 or numbers[i] == 7:
answer += 'L'
left = numbers[i]
elif numbers[i] == 3 or numbers[i] == 6 or numbers[i] == 9:
answer += 'R'
right = numbers[i]
else: # 2, 5 ,8, 0 일 경우
l = abs(numbers[i] - left)
r = abs(numbers[i] - right)
dL = (l // 3) + (l % 3)
dR = (r // 3) + (r % 3)
#print(dL, dR)
if dL > dR:
print(left, right, numbers[i])
answer += 'R'
right = numbers[i]
elif dL < dR:
print(left, right, numbers[i])
answer += 'L'
left = numbers[i]
elif dL == dR:
if hand == "right":
answer += 'R'
right = numbers[i]
elif hand == "left":
answer += 'L'
left = numbers[i]
return answer
반응형
'코딩 테스트 > Programmers' 카테고리의 다른 글
[Python] [Level 1] 추억 점수 (0) | 2023.04.12 |
---|---|
[Python] [Level 1] 달리기 경주 (리스트 안에서 자리 바꾸기, index 함수는 속도가 느리다) (0) | 2023.04.09 |
[Python] [Level 2] 주식 가격 (아주 좋은 문제) (0) | 2023.03.28 |
[Python] [Level 2] 주차 요금 계산 (프로그래머스 문제) (0) | 2023.03.26 |
[Python] [Level 1] 공원 산책 (프로그래머스 문제) (0) | 2023.03.26 |