[프로그래머스 / C++] 캐릭터의 좌표

YH·2023년 7월 18일
0

문제

캐릭터의 좌표 : 문제 링크


문제 분석

  • 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동한다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어진다. [0, 0]은 board의 정 중앙에 위치하고, board의 크기를 벗어난 방향키 입력은 무시한다.
  • x, y변수를 초기 위치인 0, 0으로 초기화하고, x_max, y_max변수에 x, y 좌표의 최대 크기로 초기화
  • for loop를 keyinput의 크기만큼 순회하고, if문으로 keyinput을 확인하고 x_max, y_max을 넘지않는것을 같이 확인한 후 1씩 +,- 해준다. 마지막에 x, y를 answer 벡터에 push_back()하고 return

풀이

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<string> keyinput, vector<int> board) {
    vector<int> answer;
    int x = 0, y = 0, x_max = board[0] / 2, y_max = board[1] / 2;
    
    for(int i = 0; i < keyinput.size(); i++) {
        if(keyinput[i] == "up" && y < y_max) y += 1;
        else if(keyinput[i] == "down" && y > -y_max) y -= 1;
        else if(keyinput[i] == "left" && x > -x_max) x -= 1;
        else if(keyinput[i] == "right" && x < x_max) x += 1;
    }
    answer.push_back(x);
    answer.push_back(y);
    return answer;
}
profile
Keep Recycling Your Dreams

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

글이 많은 도움이 되었습니다, 감사합니다.

답글 달기