어흥

[백준 2002] 추월 (C++) 본문

알고리즘/백준

[백준 2002] 추월 (C++)

라이언납시오 2020. 6. 10. 15:52
728x90
반응형

문제 링크: https://www.acmicpc.net/problem/2002

 

2002번: 추월

문제 대한민국을 비롯한 대부분의 나라에서는 터널 내에서의 차선 변경을 법률로 금하고 있다. 조금만 관찰력이 있는 학생이라면 터널 내부에서는 차선이 파선이 아닌 실선으로 되어 있다는 것

www.acmicpc.net

1. 주의할 점

- 각 차량이(문자열) 몇 번째로 터널에 들어갔는지 저장하기 위해 Map(String, Int)을 사용한다

 

2. 구현

- 들어간 차량을 Map에 저장하고, 나온 차량의 번호를 Map에서 찾아서 Fin[] 배열에 순서대로 넣는다

- 들어간 차량의 순서와 나온 차량의 순서를 비교하여 현재 차량보다 터널에 늦게 들어갔는데 현재 차량보다 터널에서 더 일찍 나온 경우, Pass++한다

 

#include <iostream>
#include <string>
#include <map>
using namespace std;
bool check[1001] = { false, };
int fin[1001];
int main() {
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int num;
	cin >> num;
	map<string, int> m;
	string str;
	for (int i = 0; i < num; i++) {
		cin >> str;
		m[str] = i;
	}
	int pass = 0;		//추월한 차량 수
	for (int i = 0; i < num; i++) {
		cin >> str;
		int val = m[str];
		fin[i] = val;
	}
	for (int i = 0; i < num - 1; i++) {
		for (int j = i + 1; j < num; j++) {
			if (fin[i] > fin[j]) {
				pass++;
				break;
			}
		}
	}
	cout << pass;
	return 0;
}

 

728x90
반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준 3967] 매직 스타 (C++)  (0) 2020.06.12
[백준 1342] 행운의 문자열 (C++)  (0) 2020.06.10
[백준 14226] 이모티콘 (C++)  (0) 2020.06.09
[백준 12886] 돌 그룹 (C++)  (0) 2020.06.09
[백준 14719] 빗물 (C++)  (0) 2020.06.09
Comments