๋ฐ์ํ
๋ฌธ์
๋ฏผ์์ด๋ ๋ค์๊ณผ ๊ฐ์ ํด๋ฆฌ์ค๋ฏธ๋
ธ 2๊ฐ๋ฅผ ๋ฌดํ๊ฐ๋งํผ ๊ฐ์ง๊ณ ์๋ค. AAAA์ BB
์ด์ '.'์ 'X'๋ก ์ด๋ฃจ์ด์ง ๋ณด๋ํ์ด ์ฃผ์ด์ก์ ๋, ๋ฏผ์์ด๋ ๊ฒน์นจ์์ด 'X'๋ฅผ ๋ชจ๋ ํด๋ฆฌ์ค๋ฏธ๋
ธ๋ก ๋ฎ์ผ๋ ค๊ณ ํ๋ค. ์ด๋, '.'๋ ํด๋ฆฌ์ค๋ฏธ๋
ธ๋ก ๋ฎ์ผ๋ฉด ์ ๋๋ค.
ํด๋ฆฌ์ค๋ฏธ๋
ธ๋ก ๋ชจ๋ ๋ฎ์ ๋ณด๋ํ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ณด๋ํ์ด ์ฃผ์ด์ง๋ค. ๋ณด๋ํ์ ํฌ๊ธฐ๋ ์ต๋ 50์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์๋ ๋ต์ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ฎ์ ์ ์์ผ๋ฉด -1์ ์ถ๋ ฅํ๋ค.
ํ์ด
// ํ์ด : https://whkakrkr.tistory.com
#include <bits/stdc++.h>
using namespace std;
string solution(string&board) {
string ans = "";
// ๋ฌธ์์ด์ ์ซ์ ๋ฒกํฐ๋ก
vector<int>v;
int cnt = board[0]=='X' ? 1 : 0;
for(int i=1; i<board.size(); i++) {
char c = board[i];
if(c == 'X') {
if(cnt == 0) {
v.push_back(0);
}
cnt++;
} else if(c == '.') {
v.push_back(cnt);
cnt = 0;
}
}
v.push_back(cnt);
// ๋ฒกํฐ๋ฅผ ํด๋ฆฌ์ค๋ฏธ๋
ธ๋ก ๋ณํ
for(int i : v) {
if(i==0) {
ans += '.';
continue;
}
if(i%2 == 1) {
return "-1";
}
for(int j=0; j<i/4; j++) {
ans += "AAAA";
}
if(i%4 == 2) {
ans += "BB";
}
}
return ans;
}
int main() {
ios_base::sync_with_stdio(false);
cout.tie(NULL);
cin.tie(NULL);
string board;
cin >> board;
cout << solution(board);
return 0;
}
๋ฐ์ํ
'๐๏ธ ICPC Sinchon > Greedy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 11508๋ฒ: 2+1 ์ธ์ผ (Silver IV) (0) | 2025.03.12 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 1758๋ฒ: ์๋ฐ์ ๊ฐํธ (Silver IV) (0) | 2025.03.12 |
[BOJ][C++] ๋ฐฑ์ค 14916๋ฒ: ๊ฑฐ์ค๋ฆ๋ (Silver V) (0) | 2025.03.10 |
[BOJ][C++] ๋ฐฑ์ค 2109๋ฒ: ์ํ๊ฐ์ฐ (Gold III) (0) | 2025.02.11 |
[BOJ][C++] ๋ฐฑ์ค 1715๋ฒ: ์นด๋ ์ ๋ ฌํ๊ธฐ (Gold IV) (0) | 2025.02.10 |