백준 2002 추월
2021. 2. 2. 21:34ㆍAlgorithm/문제풀이
백준 2002 추월
해당 문제는 map을 활용한 문제이다. map을 활용해 해당 표지판의 위치를 저장한 후 위치를 거스릴 때까지 체크 후 알맞은 포인트를 찾으면 방문했던 점을 제외하고 다음 위치를 찾아줍니다.
찾으려는 번호판의 숫자와 동일하다면 다음에 방문할 수 있는 점으로 이동해준다. 만약 현재 방문하려는 숫자와 틀린 경우 wrongNumber를 추가해주고 visit에 방문했음을 추가하여 맞았을 때 무시하도록 해줍니다.
더보기
#include <cstdio>
#include <string>
#include <map>
using namespace std;
map<string, int> position;
int main(){
int N;
char carNumber[14];
scanf("%d", &N);
for(int i = 0; i < N; i++){
scanf("%s", &carNumber);
position[carNumber] = i;
}
int rightIndex = 0, wrongPosition = 0;
int visited[1002] = {0, };
for(int i = 0; i < N; i++){
scanf("%s", &carNumber);
if(rightIndex < position[carNumber]){
wrongPosition++;
visited[position[carNumber]] = 1;
}else if(rightIndex == position[carNumber]){
for(int i = rightIndex + 1; i < N; i++){
if(visited[i] == 0){
rightIndex = i;
break;
}
}
}
}
printf("%d", wrongPosition);
}
'Algorithm > 문제풀이' 카테고리의 다른 글
백준 2146 다리 만들기 (0) | 2021.02.02 |
---|---|
13707 합분해 2 (0) | 2021.02.02 |
백준 1937 욕심쟁이 판다 (0) | 2021.01.28 |
백준 1005 AMC Craft (0) | 2021.01.28 |
백준 1351 무한 수열 (0) | 2021.01.25 |