영희의 출발점과 각 점에서의 이동 정보가 (위치, 방향, 거리) 순으로 주어질 때, 영희의 최종 목적지를 구해야한다. 단, 모든 정보들의 위치는 중복되지 않는다.
위치가 중복되지 않기 때문에, 위치를 키로 하는 맵을 생성해줍니다. 그리고 출발점에서부터 현재 위치를 키로 삼아서 정보를 가져와 시뮬레이션을 돌려주면 되는 간단한 문제입니다. 정렬이 필요 없기 때문에 해시맵을 사용해주는 쪽이 더 빠릅니다.
21년도 ICPC 리저널 당시 제일 쉬운 문제였습니다.
#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
unordered_map<int, pair<char, int>> m;
int main(void)
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
int num, dist;
char dir;
cin >> num >> dir >> dist;
m.insert({ num, {dir, dist} });
}
int now;
cin >> now;
for (int i = 0; i < n; i++)
{
if (m[now].first == 'R')
now += m[now].second;
else
now -= m[now].second;
}
cout << now << endl;
return 0;
}