어흥
[백준 2002] 추월 (C++) 본문
728x90
반응형
문제 링크: https://www.acmicpc.net/problem/2002
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