코테/구현
[C/C++] 나동빈 상하좌우, 구현
상똥
2023. 2. 15. 14:27
문제
NxN크기의 공간에서 L(왼쪽), R(오른쪽), U(위), D(아래)를 입력받아 한 칸씩 이동한다. 엔터를 칠때까지 최대 백번 입력받으며 범위 (1~N)에서 벗어날 경우 입력을 무시한다. 첫째줄에 N을 입력받고 그 다음 줄에 띄어쓰기를 기준으로 문자를 하나씩 입력받는다. 엔터시 입력은 종료된다. 다음 줄에 행과 열을 출력한다. |
코드
#include <iostream>
using namespace std;
int dx[] = { -1,1,0,0 };
int dy[] = { 0,0,-1,1 };
char m[] = { 'L','R','U','D' };
int main() {
int N, x = 1, y = 1;
cin >> N;
char map[100], input;
cin.get(input);
while (cin.get(input)) {
if (input == '\n')
break;
for (int i = 0; i < 4; i++) {
if (input == m[i]) {
x += dx[i];
y += dy[i];
cnt++;
}
if (x == N + 1)
x--;
if (x == 0)
x++;
if (y == N + 1)
y--;
if (y == 0)
y++;
}
}
cout << y << ' ' << x;
}