백준 2002 추월

2021. 2. 2. 21:34Algorithm/문제풀이

www.acmicpc.net/problem/2002

 

2002번: 추월

입력은 총 2N+1개의 줄로 이루어져 있다. 첫 줄에는 차의 대수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 대근이가 적은 차량 번호 목록이 주어지고, N+2째 줄부터 N개의 줄에는 영식이

www.acmicpc.net

백준 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