카테고리 없음

LV.1 캐릭터의 좌표

JM Lee 2023. 4. 25. 19:46
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