[C++] 백준 23568번: Find the House

be_clever·2022년 1월 16일
0

Baekjoon Online Judge

목록 보기
32/172

문제 링크

23568번: Find the House

문제 요약

영희의 출발점과 각 점에서의 이동 정보가 (위치, 방향, 거리) 순으로 주어질 때, 영희의 최종 목적지를 구해야한다. 단, 모든 정보들의 위치는 중복되지 않는다.

접근 방법

위치가 중복되지 않기 때문에, 위치를 키로 하는 맵을 생성해줍니다. 그리고 출발점에서부터 현재 위치를 키로 삼아서 정보를 가져와 시뮬레이션을 돌려주면 되는 간단한 문제입니다. 정렬이 필요 없기 때문에 해시맵을 사용해주는 쪽이 더 빠릅니다.

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;
}
profile
똑똑해지고 싶어요

0개의 댓글