일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 대학원
- level4
- git
- Github
- 프로그래머스
- SWEA
- level3
- androidstudio
- D3
- 휴학
- MSBuild
- SQL
- java
- BFS
- py
- WebOS
- Matrix Factorization
- 다시풀기
- 내휴학생활중의아주큰일
- 컨트리뷰톤
- LEVEL2
- 어렵다
- 안드로이드스튜디오
- 대학원일기
- Python
- 컴퓨터비전
- 자바
- level1
- 파이썬
- build
Archives
- Today
- Total
bit가 눈 앞에서 왔다갔다
Py) 프로그래머스 67256 키패드 누르기 본문
https://programmers.co.kr/learn/courses/30/lessons/67256
코딩테스트 연습 - 키패드 누르기
[1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL"
programmers.co.kr
def solution(numbers, hand):
answer = ''
left = (3, 0)
right = (3, 2)
keypad = [(3,1),
(0,0), (0,1), (0,2),
(1,0), (1,1), (1,2),
(2,0), (2,1), (2,2)
]
for num in numbers:
if num in [1,4,7]:
answer += 'L'
left = keypad[num]
elif num in [3,6,9]:
answer += 'R'
right = keypad[num]
else: # 좌표느낌?
lmove = abs(keypad[num][0]-left[0]) + abs(keypad[num][1]-left[1])
rmove = abs(keypad[num][0]-right[0]) + abs(keypad[num][1]-right[1])
if lmove > rmove:
answer += 'R'
right = keypad[num]
elif lmove < rmove:
answer += 'L'
left = keypad[num]
else:
if hand == 'right':
answer += 'R'
right = keypad[num]
else:
answer += 'L'
left = keypad[num]
return answer
print(solution([1, 2, 3, 4, 5, 6, 7, 8, 9, 0], "right"))
*
튜플을 사용해서 좌표값(?) 느낌으로 위치 표시하는 아이디어
반응형
'Algorithm > Prob' 카테고리의 다른 글
Py) 프로그래머스 67259 경주로 건설 (0) | 2022.03.10 |
---|---|
SQL) 95410, 95043 (0) | 2022.03.05 |
SQL) 프로그래머스 59040 고양이와 개는 몇 마리 있을까 (0) | 2022.02.28 |
Py) 프로그래머스 92334 신고 결과 받기 (0) | 2022.02.28 |
Py) 프로그래머스 70128 내적 (0) | 2022.02.27 |
Comments