프로그래머스 120861 캐릭터의 좌표

Jmnote (토론 | 기여)님의 2023년 11월 29일 (수) 01:03 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

프로그래머스 120861 캐릭터의 좌표

2 C++[ | ]

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<string> keyinput, vector<int> board) {
    int xMax = board[0]/2;
    int xMin = -xMax;
    int yMax = board[1]/2;
    int yMin = -yMax;
    
    int x = 0, y = 0;
    for(auto& key: keyinput) {
        if(key == "up") y++;
        else if(key == "down") y--;
        else if(key == "left") x--;
        else x++;
 
        if(y < yMin) y = yMin;
        else if(y > yMax) y = yMax;
        else if(x < xMin) x = xMin;
        else if(x > xMax) x = xMax;
    }
    return vector<int>{x, y};
}
#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<string> keyinput, vector<int> board) {
    int xMax = board[0]/2;
    int xMin = -xMax;
    int yMax = board[1]/2;
    int yMin = -yMax;
    
    int x = 0, y = 0;
    for(auto& key: keyinput) {
        if(key == "up") {
            if(y+1 <= yMax) y++;
        }
        else if(key == "down") {
            if(y-1 >= yMin) y--;
        }
        else if(key == "left") {
            if(x-1 >= xMin) x--;
        }
        else {
            if(x+1 <= xMax) x++;
        }
    }
    return vector<int>{x, y};
}