https://school.programmers.co.kr/learn/courses/30/lessons/120861?language=python3
풀이 - 나의 생각
간단한 구현 문제입니다.
딕셔너리를 통해 해당 키보드에 맞는 움직임을 저장해두고
범위안에서만 움직이게 하면 됩니다.
코드
def solution(keyinput, board):
x, y = 0, 0
minX, maxX = -(board[0]//2), board[0]//2
minY, maxY = -(board[1]//2), board[1]//2
direct = {"up":(0,1),"down":(0,-1),"left":(-1,0),"right":(1,0)}
for key in keyinput:
dx = x + direct[key][0]
dy = y + direct[key][1]
if minX <= dx <= maxX and minY <= dy <= maxY:
x = dx
y = dy
return [x, y]
def solution(keyinput, board):
x, y = 0, 0
maxX, maxY = board[0] // 2, board[1] // 2
direct = {"up":(0,1),"down":(0,-1),"left":(-1,0),"right":(1,0)}
for key in keyinput:
dx, dy = direct[key]
x = max(-maxX, min(maxX, x + dx))
y = max(-maxY, min(maxY, y + dy))
return [x, y]
728x90
'프로그래머스 > Lv.0' 카테고리의 다른 글
문자 개수 세기 - Python, ord (0) | 2024.11.24 |
---|---|
평행 - Python, 기울기, 비구조화 할당 (1) | 2024.11.13 |
안전지대 - Python, 구현, set (0) | 2024.11.13 |
최빈값 구하기 - Python, Counter (0) | 2024.11.11 |
등수 매기기 - Pyton, sorted (1) | 2024.11.10 |