PS
BOJ 15886 : 내 선물을 받아줘 2
lickelon
2024. 12. 24. 21:57
- 문제 링크 : boj.kr/15886
- 난이도 : S3
- 태그 : 문자열
코드
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define INF 0x7FFFFFFF
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll, ll>;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;
cin >> n;
string s;
cin >> s;
int ans = 0;
for(int i = 1; i < n; i++) {
if(s[i] == 'W' && s[i-1] == 'E') ans++;
}
cout << ans;
return 0;
}
풀이
여러 개의 E와 여러 개의 W는 각각 하나의 E와 W로 나타낼 수 있다.
지도 밖으로 나가는 입력이 주어지지 않으므로 압축된 문자열은 "EW"가 K번 반복된다.
EW는 둘을 왕복하므로 둘 중 아무 곳에나 선물을 놓아도 상관이 없다.
또한 밖으로 나가지도 않기에 EW의 수만큼 선물을 놓아야 한다.
728x90