์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ๋ต ๋น์จ |
2 ์ด | 128 MB | 43.590% |
๋ฌธ์
a์ b๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ด ์ฃผ์ด์ง ๋, a๋ฅผ ๋ชจ๋ ์ฐ์์ผ๋ก ๋ง๋ค๊ธฐ ์ํด์ ํ์ํ ๊ตํ์ ํ์๋ฅผ ์ต์๋ก ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ด ๋ฌธ์์ด์ ์ํ์ด๊ธฐ ๋๋ฌธ์, ์ฒ์๊ณผ ๋์ ์๋ก ์ธ์ ํด ์๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด, aabbaaabaaba์ด ์ฃผ์ด์ก์ ๋, 2๋ฒ์ ๊ตํ์ด๋ฉด a๋ฅผ ๋ชจ๋ ์ฐ์์ผ๋ก ๋ง๋ค ์ ์๋ค.
์ฒซ์งธ ์ค์ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค. ๋ฌธ์์ด์ ๊ธธ์ด๋ ์ต๋ 1,000์ด๋ค.
์ฒซ์งธ ์ค์ ํ์ํ ๊ตํ์ ํ์์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
ํด๊ฒฐ
key point, ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ์ฐ์๋ b๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๋ฌธ์์ด์์ b๊ฐ์ ๊ฐ์๋ฅผ ์ธ์ด ์ ์ฅํ๋ค. → size
- ์ด ๋ฌธ์ ์์ ๋ฌธ์์ด์ ์ํ์ด๋ค. ๋ฐ๋ผ์ ๋ฌธ์์ด์ ํ๋ฒ ๋ ์ด์ด ๋ถ์ฌ์ค๋ค → str += str;
- ์ด๋ ๊ฒ ๋๋ฉด, 0๋ถํฐ str.length()๊น์ง ๋ณด๋ฉด์, ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ก ์๋์ฐ ํฌ๊ธฐ(L)๋งํผ ๋ณผ ๋ ์ํ์ ๋ชจ์์ผ๋ก ์ ๋ถ ํ์ธํ ์ ์๋ค.
- ์ฌ๊ธฐ์ ์๋์ฐ ํฌ๊ธฐ๋ ๋ฐ๋ก size๊ฐ ๋๋ค.
- ์ด์ , 0 ๋ถํฐ str.length()๊น์ง ๋ชจ๋ i์ ๋ํด์ str[i]๊ฐ 'b'๋ผ๋ฉด queue์ ์ธ๋ฑ์ค i๋ฅผ ๋ฃ์ด์ค๋ค.
- b๊ฐ ์กด์ฌํ ์์น์ ๋์์ ํ์ฌ ๋ณด๊ณ ์๋ ๊ตฌ๊ฐ์ ์๋ b์ ๊ฐ์๋ฅผ ๋ฐ๋ก ์ ์ ์๋ค. → q.size()
- i - q.front() ๊ฐ size ๋ณด๋ค ๊ฐ๊ฑฐ๋ ํฌ๋ค๋ฉด, ๊ตฌ๊ฐ์ ๋ฒ์๋ฅผ ๋์ด์ ๊ฒ์ด๋ฏ๋ก queue์์ ์ ๊ฑฐํ๋ค. → q.pop()
- ๊ตํ ํ์์ ์ต์๊ฐ์ ๊ตฌํ๊ธฐ ์ํด์๋ minํจ์๋ฅผ ์ด์ฉํด์, size - q.size()์ ์ต์๊ฐ์ ๊ตฌํ๋ค.
- ์ฐ๋ฆฌ๊ฐ ๊ตฌํ๊ณ ์ ํ๋ size๋ ์ฐ์๋(๋์ด์ผํ๋) b์ ๊ฐ์์ด๋ฉฐ, q.size()๋ ํ์ฌ ๋ณด๊ณ ์๋ ๊ตฌ๊ฐ์ b์ ๊ฐ์์ด๋ค.
- size - q.size() ์ ๊ฐ์ด ๋ฐ๋ก ๊ตฌ๊ฐ์ ์๋ a์ ๊ฐ์๊ฐ๋๊ณ ์ฆ, ๊ตํ ํ์๊ฐ ๋๋ค.
- ๋ฐ๋ผ์ ๋ชจ๋ ๊ตฌ๊ฐ์ ๋ํด์ size - q.size()์ ์ต์๊ฐ์ ๊ตฌํ๋ค๋ฉด ์ ๋ต์ ์ฐพ์ ์ ์๋ค.
์ฝ๋
๋ฉ๋ชจ๋ฆฌ | ์๊ฐ |
2020 KB | 0 ms |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <iostream>
#include <queue>
#include <algorithm>
#include <string>
using namespace std;
string str;
int main() {
cin >> str;
int size = 0;
for (int i = 0; i < str.length(); i++) {
if (str[i] == 'b') size++;
}
str += str;
int ans = size;
queue<int> q;
for (int i = 0; i < str.length(); i++) {
if (!q.empty() && i - q.front() >= size) q.pop();
if (str[i] == 'b') q.push(i);
ans = min(ans, size - (int)q.size());
}
printf("%d", ans);
return 0;
}
|
cs |
'๐ฅ PS(Problem Solving) ๐ฅ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] #3653 ์ํ ์์ง (0) | 2021.02.17 |
---|---|
[BOJ] #2042 ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ (0) | 2021.02.15 |
[BOJ] #11505 ๊ตฌ๊ฐ ๊ณฑ ๊ตฌํ๊ธฐ (0) | 2021.02.15 |
[BOJ] #10868 ์ต์๊ฐ (0) | 2021.02.15 |
[BOJ] #1509 ํฐ๋ฆฐ๋๋กฌ ๋ถํ (0) | 2021.02.09 |
๋๊ธ