백준15920 선로에 마네킹이야!!

문제 링크

  • http://icpc.me/15920

문제 출처

  • 제2회 천하제일 코딩대회 본선 E번

풀이

단순 구현 문제입니다.
현재 위치가 A구역이라면 래버를 몇 번 당기는지만 카운트해주면 됩니다.
현재 위치가 B구역인데 래버를 당겼다면, 멀티트랙 드리프팅 현상이 발생해서 두 선로를 동시에 타게 됩니다.
만약 C구역에 도달하지 못했다면 0, 그렇지 않은 경우에는 위에서 처리해준 것에 맞게 적절히 출력하면 됩니다.

전체 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
using namespace std;

int flag, cnt;

int main(){
	int n; cin >> n;
	string str; cin >> str;
	for(auto i : str){
		if(i == 'W') cnt++;
		else{
			if(cnt == 1) flag = 2;
			else if(cnt == 0 && flag == 0) flag = 1;
			else if(cnt == 0 && flag == 1) flag = 0;
		}
	}
	if(cnt >= 2){
		if(flag == 0) cout << 5;
		else if(flag == 1) cout << 1;
		else cout << 6;
	}else cout << 0;
}