https://www.acmicpc.net/problem/1992
1992๋ฒ: ์ฟผ๋ํธ๋ฆฌ
์ฒซ์งธ ์ค์๋ ์์์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ์ซ์ N ์ด ์ฃผ์ด์ง๋ค. N ์ ์ธ์ ๋ 2์ ์ ๊ณฑ์๋ก ์ฃผ์ด์ง๋ฉฐ, 1 ≤ N ≤ 64์ ๋ฒ์๋ฅผ ๊ฐ์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ๋ ๊ธธ์ด N์ ๋ฌธ์์ด์ด N๊ฐ ๋ค์ด์จ๋ค. ๊ฐ ๋ฌธ์์ด์ 0 ๋
www.acmicpc.net
์ ํ์ ์ธ ๋ถํ ์ ๋ณต ๋ฌธ์ !
์ด๋ฒ์๋ ์ค๋๋ง์ C++๋ก ํ์ด๋ดค๋ค.
โ ๋ฌธ์ ํ ๋ ์ฃผ์ํ ์
์๋ ํ ์คํธ์ผ์ด์ค๋ค ์ ๋๋ง ์ฃผ์ํ๋ฉด ๋๋ ๊ฒ ๊ฐ๋ค.
์ ๊ฑธ ๊ณ ๋ ค ์ ํด์ ๊ณ ์ ์ข ํ๋ค ๐ฅฒ
# input1
2
11
11
# output1
1
# input2
2
10
01
# output2
(1001)
โ ์์ด๋์ด
- ์ผ์ชฝ ์, ์ค๋ฅธ์ชฝ ์, ์ผ์ชฝ ์๋, ์ค๋ฅธ์ชฝ ์๋ ์ด 4๊ฐ ์์ญ์ ๋๋์ด์ ํ๋์ฉ ๊ฒ์ฌํ๋ค.
- ์์ญ์ ์ฒซ ๋ฒ์งธ ์ซ์๋ฅผ ์ ์ฅํ ๋ค, ์์ญ์ ํ์ํ๋ฉด์ ํ๋๋ผ๋ ๋ค๋ฅด๋ฉด ํ์์ ์ค์งํ๊ณ ์ฌ๊ทํ๋ค.
- ์์ญ์ ์ซ์๊ฐ ๋ชจ๋ ๋์ผํ๋ฉด ์ซ์๋ฅผ ๊ฒฐ๊ณผ string์ ์ ์ฅํ๋ค.
โ ์ ์ถ ์ฝ๋
#include <iostream>
#include <string>
#include <vector>
using namespace std;
char table[64][64];
string quad(int row, int col, int qSize){ // ์์ํ, ์์์ด, ์ฒดํฌํ ์์ญ ํฌ๊ธฐ
string result; result += '(';
int area = qSize/2;
int startR[4] = {row, row, row+area, row+area};
int startC[4] = {col, col+area, col, col+area};
for(int k=0; k<4; k++){
//current row, current col
int cr = startR[k]; int cc = startC[k];
char first = table[cr][cc];
bool flag = true;
for(int i=cr; i<cr+area; i++){
for(int j=cc; j<cc+area; j++){
if (table[i][j]!=first){
result += quad(cr, cc, area);
flag = false;
break;
}
}
if (!flag) break;
}
if (flag) result += first;
}
return result+')';
}
int main() {
// ์ธํ ์
๋ ฅ๋ฐ๊ณ ์ ์ฅํ๊ธฐ
int n; cin >> n;
for (int i=0; i<n; i++){
string temp; cin >> temp;
for (int j=0;j<n;j++){
table[i][j] = temp[j];
}
}
// ์์ถ์ด ํ ๋ฒ์ ๋๋์ง ์ฒดํฌ
bool flag = true;
char first = table[0][0];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(first != table[i][j]){
flag = false; break;
}
}
if (!flag) break;
}
// ์์ถ์ด ํ ๋ฒ์ ๋๋ฉด ๊ฒฐ๊ณผ ์ถ๋ ฅ
if(flag) cout<<first;
//๊ทธ๋ ์ง ์์ผ๋ฉด quadํจ์ ์คํ
else cout << quad(0,0,n);
return 0;
}
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > -' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[softeer] ์ง๋ ์๋ ๊ตฌ์ถ (0) | 2023.05.21 |
---|---|
[๋ฐฑ์ค]19532๋ฒ: ์ํ์ ๋น๋๋ฉด๊ฐ์์ ๋๋ค (0) | 2023.05.17 |
[๋ฐฑ์ค]2503๋ฒ: ์ซ์ ์ผ๊ตฌ (0) | 2023.05.09 |
[๋ฐฑ์ค]1018๋ฒ: ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (0) | 2023.05.07 |
์ต์๊ณต๋ฐฐ์ ๋ฌธ์ (0) | 2023.04.15 |