728x90
반응형
25497번: 기술 연계마스터 임스
$1$, $2$, $S$ - $K$, $2$로 스킬을 성공적으로 총 4번 사용했다.
www.acmicpc.net
본 기술의 발동 조건
- 하나의 사전 기술은 하나의 본 기술과만 연계해서 사용한다.
- 연계할 사전 기술 없이 본 기술을 사용했을 경우 이후 사용하는 기술들이 정상적으로 발동되지 않는다.
- 반드시 사전 기술을 사용한 직후에 본 기술을 사용할 필요는 없다.
- 중간에 다른 기술을 사용하여도 연계는 정상적으로 이루어진다.
- 제목
기술 연계마스터 임스
- 조건
시간 제한 : 1 초
메모리 제한 : 1024 MB
- 문제
임스는 연계 기술을 사용하는 게임을 플레이 중에 있다. 연계 기술은 사전 기술과 본 기술의 두 개의 개별 기술을 순서대로 사용해야만 정상적으로 사용 가능한 기술을 말한다.
하나의 사전 기술은 하나의 본 기술과만 연계해서 사용할 수 있으며, 연계할 사전 기술 없이 본 기술을 사용했을 경우에는 게임의 스크립트가 꼬여서 이후 사용하는 기술들이 정상적으로 발동되지 않는다. 그렇지만 반드시 사전 기술을 사용한 직후에 본 기술을 사용할 필요는 없으며, 중간에 다른 기술을 사용하여도 연계는 정상적으로 이루어진다.
임스가 사용할 수 있는 기술에는 1~9, L, R, S, K가 있다. 1~9는 연계 없이 사용할 수 있는 기술이고, L은 R의 사전 기술, S은 K의 사전 기술이다.
임스가 정해진 순서대로 N개의 기술을 사용할 때, 기술이 몇 번이나 정상적으로 발동하는지를 구해보자.
단, 연계 기술은 사전 기술과 본 기술 모두 정상적으로 발동되었을 때만 하나의 기술이 발동된 것으로 친다.
- 입력
첫 번째 줄에는 총 기술 사용 횟수 N이 주어진다. (1 ≤ N ≤ 200000)
두 번째 줄에는 임스가 사용할 N개의 기술이 공백 없이 주어진다.
- 출력
임스가 정상적으로 기술을 사용한 총 횟수를 출력한다.
예제 입력1 | 예제 출력1 |
5 S12K2 |
4 |
예제 입력2 | 예제 출력2 |
4 1LKR |
1 |
예제 입력1 | 예제 출력1 |
4 SSKK |
2 |
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
#define endl '\n'
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int sz, cnt = 0;
int Lon = 0, Son = 0;
string skill;
cin >> sz >> skill;
for(int n = 0 ; n < sz ; n++){
if(skill[n] >= '1' && skill[n] <= '9') cnt++;
else{
switch(skill[n]){
case 'L':
Lon++;
break;
case 'R':
if(Lon > 0){
cnt++;
Lon--;
}
else goto space;
break;
case 'S':
Son++;
break;
case 'K':
if(Son > 0){
cnt++;
Son--;
}
else goto space;
break;
}
}
}
space:
cout << cnt << endl;
return 0;
}
728x90
반응형
'Problem Solving > BaekJoon' 카테고리의 다른 글
[BOJ/백준] 1707 - 이분그래프 (0) | 2022.08.24 |
---|---|
[BOJ/백준] 25497 - 단순한 문제 (Large) (0) | 2022.08.23 |
[BOJ/백준] 25496 - 장신구 명장 임스 (0) | 2022.08.23 |
[BOJ/백준] 25495 - 에어팟 (0) | 2022.08.23 |
[BOJ/백준] 25494 - 단순한 문제 (Small) (0) | 2022.08.23 |