728x90
코딩테스트 연습 - 캐릭터의 좌표 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
처음 문제를 보고 핵심은 두 가지라고 생각했다.
1. 상하좌우 네 가지의 경우를 어떤 식으로 이동시킬지,
2. board 밖으로 나가지 않게 하는 장치는 어떤 것이 있을지.
이 두 가지만 잘 설정해도 이 문제는 90% 이상은 풀 수 있을 것이다.
특히나 1번 핵심을 정리하는 것에 고민을 가졌다. 2번과 연계를 잘 해야 하기 때문에.
def solution(keyinput, board):
x = board[0]
#가로
y = board[1]
#세로
result = [0, 0]
#기본값
for i in keyinput:
if i == "left" and result[0]-1 >= -(x // 2):
# 좌표가 board의 범위를 넘어서면 안 되게끔 설정
result[0] -= 1
elif i == "right" and result[0]+1 <= (x // 2):
result[0] += 1
elif i == "up" and result[1]+1 <= (y // 2):
result[1] += 1
elif i == "down" and result[1]-1 >= -(y // 2):
result[1] -= 1
return result