728x90
반응형
주의사항
- 몇번 이동하는지 정해지지 않았기 때문에 string으로 받는다
- n을 입력받고string을 이어서 받기 전에 버퍼를 비워준다
- L, R, U, D를 미리 정해두고 그 인덱스에 맞춰 여행가A를 옮긴다
#include <bits/stdc++.h>
using namespace std;
int n;
string plans;
int dx[] = {-1, 1, 0, 0}; //L, R, U, D
int dy[] = {0, 0, 1, -1};
char moveTypes[4] = {'L', 'R', 'U', 'D'};
int main() {
ios::sync_with_stdio(0);
cin.tie(0); //속도 가속화
cin >> n;
cin.ignore(); // 버퍼 비우기
getline(cin, plans);
int x = 1, y = 1;
for(int i=0; i<plans.size(); i++){
char plan = plans[i];
// 이동 후 좌표 구하기
int nx = -1, ny = -1;
for(int j=0; j<4; j++){
if(plan == moveTypes[j]){
nx = x + dx[j];
ny = y + dy[j];
}
}
// 공간을 벗어나는 경우 무시
if(nx<1 || ny<1 || nx>n || ny>n) continue;
//이동 수행
x = nx;
y = ny;
}
cout << x << ' ' << y << '\n';
return 0;
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[이코테/완전탐색/C++] 시각 (0) | 2023.01.06 |
---|---|
[백준/완전탐색/C++] 1476번 날짜 계산 (0) | 2023.01.06 |
[백준/분할정복/C++] 1992번 쿼드트리 (0) | 2023.01.05 |
[백준/재귀/C++] 11729번 하노이 탑 이동 순서 (0) | 2023.01.05 |
[백준/분할정복/C++] 1780번 종이의 개수 (0) | 2023.01.04 |