코테/구현

[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;
}