https://www.acmicpc.net/problem/1992
1992๋ฒ: ์ฟผ๋ํธ๋ฆฌ
์ฒซ์งธ ์ค์๋ ์์์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ์ซ์ N ์ด ์ฃผ์ด์ง๋ค. N ์ ์ธ์ ๋ 2์ ์ ๊ณฑ์๋ก ์ฃผ์ด์ง๋ฉฐ, 1 โค N โค 64์ ๋ฒ์๋ฅผ ๊ฐ์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ๋ ๊ธธ์ด N์ ๋ฌธ์์ด์ด N๊ฐ ๋ค์ด์จ๋ค. ๊ฐ ๋ฌธ์์ด์ 0 ๋
www.acmicpc.net
๋ฌธ์
ํ๋ฐฑ ์์์ ์์ถํ์ฌ ํํํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ์ฟผ๋ ํธ๋ฆฌ(Quad Tree)๋ผ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ํฐ ์ ์ ๋ํ๋ด๋ 0๊ณผ ๊ฒ์ ์ ์ ๋ํ๋ด๋ 1๋ก๋ง ์ด๋ฃจ์ด์ง ์์(2์ฐจ์ ๋ฐฐ์ด)์์ ๊ฐ์ ์ซ์์ ์ ๋ค์ด ํ ๊ณณ์ ๋ง์ด ๋ชฐ๋ ค์์ผ๋ฉด, ์ฟผ๋ ํธ๋ฆฌ์์๋ ์ด๋ฅผ ์์ถํ์ฌ ๊ฐ๋จํ ํํํ ์ ์๋ค.
์ฃผ์ด์ง ์์์ด ๋ชจ๋ 0์ผ๋ก๋ง ๋์ด ์์ผ๋ฉด ์์ถ ๊ฒฐ๊ณผ๋ "0"์ด ๋๊ณ , ๋ชจ๋ 1๋ก๋ง ๋์ด ์์ผ๋ฉด ์์ถ ๊ฒฐ๊ณผ๋ "1"์ด ๋๋ค. ๋ง์ฝ 0๊ณผ 1์ด ์์ฌ ์์ผ๋ฉด ์ ์ฒด๋ฅผ ํ ๋ฒ์ ๋ํ๋ด์ง๋ฅผ ๋ชปํ๊ณ , ์ผ์ชฝ ์, ์ค๋ฅธ์ชฝ ์, ์ผ์ชฝ ์๋, ์ค๋ฅธ์ชฝ ์๋, ์ด๋ ๊ฒ 4๊ฐ์ ์์์ผ๋ก ๋๋์ด ์์ถํ๊ฒ ๋๋ฉฐ, ์ด 4๊ฐ์ ์์ญ์ ์์ถํ ๊ฒฐ๊ณผ๋ฅผ ์ฐจ๋ก๋๋ก ๊ดํธ ์์ ๋ฌถ์ด์ ํํํ๋ค

์ ๊ทธ๋ฆผ์์ ์ผ์ชฝ์ ์์์ ์ค๋ฅธ์ชฝ์ ๋ฐฐ์ด๊ณผ ๊ฐ์ด ์ซ์๋ก ์ฃผ์ด์ง๋ฉฐ, ์ด ์์์ ์ฟผ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ์์ถํ๋ฉด "(0(0011)(0(0111)01)1)"๋ก ํํ๋๋ค. N รN ํฌ๊ธฐ์ ์์์ด ์ฃผ์ด์ง ๋, ์ด ์์์ ์์ถํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ์์์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ์ซ์ N ์ด ์ฃผ์ด์ง๋ค. N ์ ์ธ์ ๋ 2์ ์ ๊ณฑ์๋ก ์ฃผ์ด์ง๋ฉฐ, 1 โค N โค 64์ ๋ฒ์๋ฅผ ๊ฐ์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ๋ ๊ธธ์ด N์ ๋ฌธ์์ด์ด N๊ฐ ๋ค์ด์จ๋ค. ๊ฐ ๋ฌธ์์ด์ 0 ๋๋ 1์ ์ซ์๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์์์ ๊ฐ ์ ๋ค์ ๋ํ๋ธ๋ค.
์ถ๋ ฅ
์์์ ์์ถํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
[๐ Baaaaaarking/0x0B๊ฐ - ์ฌ๊ท] - [BOJ S3] 2603๋ฒ: ์์ข ์ด ๋ง๋ค๊ธฐ
[BOJ S3] 2603๋ฒ: ์์ข ์ด ๋ง๋ค๊ธฐ
https://www.acmicpc.net/problem/2630 2630๋ฒ: ์์ข ์ด ๋ง๋ค๊ธฐ ์ฒซ์งธ ์ค์๋ ์ ์ฒด ์ข ์ด์ ํ ๋ณ์ ๊ธธ์ด N์ด ์ฃผ์ด์ ธ ์๋ค. N์ 2, 4, 8, 16, 32, 64, 128 ์ค ํ๋์ด๋ค. ์์ข ์ด์ ๊ฐ ๊ฐ๋ก์ค์ ์ ์ฌ๊ฐํ์นธ๋ค์ ์์ด ์..
whkakrkr.tistory.com
์ง์ ๋ฌธ์ ์ ์ ์ฌํ๊ฒ ํ์ดํ๋ค
๊ทผ๋ฐ ์ด์ ์ถ๋ ฅ์์ ์ด์ง ๊ณ ๋ฏผ์ ํ์๋ค..
(1)
๋คํํ ์ฌ๊ทํจ์๋ฅผ ํธ์ถํ ๋ ๋ง๋ค ๊ดํธ๋ฅผ ์ถ๊ฐ์์ผ์
์ํ ๋ ๊ดํธ๊ฐ ์ด๋ฆฌ๊ณ ๋ซํ๊ฒ ๋ง๋ค์๋๋ฐ..
๋ฌธ์ ๋ ๊ดํธ๊ฐ ์ค๋ณต๋์ด ์๊ธฐ๋ ๊ฒ์ด์๋ค
์ ๋ต : ((110(0101))(0010)1(0001))
๋ด๋ต : ((1)(1)(0)((0)(1)(0)(1)))((0)(0)(1)(0))(1)((0)(0)(0)(1))
๊ทธ๋์.. ์ถ๋ ฅํ ๋
(2)
๊ดํธ๊ฐ ํ๋ฒ๋์ค๋ฉด ์ถ๋ ฅํ์ง ์๊ณ
2์ฐ์์ผ๋ก ๋์์ ๋๋ง ์ถ๋ ฅ.. ํ๋ ๋ฐฉ์..
+ ์์๊ณผ ๋์ ๊ดํธ ์ถ๊ฐ
์ด๋ ๊ฒ ํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ
..๋์ค ์์๋๋ฐ ..!
์๊พธ 83%์์ ํ๋ ธ์ต๋๋ค๊ฐ ๋จ๋๊ฒ์ด์๋ค.
https://www.acmicpc.net/board/view/41647
์๊ณ ๋ณด๋ ๋ต์ด 0์ด๋ 1 ํ๊ฐ๋ง ์๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํ์ง ๋ชปํ๋.. ๊ฒ..
์ ๋ต : 0
๋ด๋ต : (0)
(3)
๊ทธ๋์ ์์ธ์ฒ๋ฆฌ ํด์คฌ๋ค..
๋ต์ด ํ๊ฐ์ธ ๊ฒฝ์ฐ๋ ๊ดํธ ์์ด ๋ต๋ง ์ถ๋ ฅํ๋๋ก..!
// Authored by : seondal
// Co-authored by : -
//#include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;
int N;
char video[64][64];
vector<char> v;
bool check(int n, int x, int y) { // (x,y) ๋ถํฐ n๊ฐ ํฌ๊ธฐ ์ข
์ด๊ฐ ๊ฐ์ ์ซ์๋ก ์ฑ์์ก๋์ง ํ์ธ
for(int i=x; i<x+n; i++)
for(int j=y; j<y+n; j++)
if(video[i][j] != video[x][y])
return false;
return true;
}
void recur(int n, int x, int y) {
if(check(n,x,y)) {
v.push_back(video[x][y]);
return;
}
int next = n/2;
for(int i=x; i < x+n; i = i+next) {
for(int j=y; j < y+n; j = j+next) {
v.push_back('('); //(1)
recur(next, i, j);
v.push_back(')');
}
}
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
// ์
๋ ฅ
cin >> N;
for(int i=0; i<N; i++)
for(int j=0; j<N; j++)
cin >> video[i][j];
// ์ฌ๊ท
recur(N, 0, 0);
//์ถ๋ ฅ
if(v.size()==1) { // (3)
cout << v[0];
}
else { // (2)
cout << "(";
for(int i=0; i<v.size(); i++) {
if(v[i]=='(') {
if(v[i+1] == '(') cout << "(";
}
else if(v[i]==')') {
if(v[i+1]==')') cout << ")";
}
else cout << v[i];
}
cout << ")";
}
return 0;
}
/*
*/
์ฝ๊ฐ.. ์ ๊ทผ์ ์๋ชปํด์
๋ฌธ์ ๊ฐ ์๊ธฐ๊ณ ๊ทธ ๋ฌธ์ ๋ง ํด๊ฒฐํ๋ ๋ฐฉ์์ผ๋ก
์นด๋๊นก๋ง๋ฅ ์ด์ ๋๋ ค๋ง๊ธฐ๋ฅผ ํด๋ฒ๋ฆฐ.. ๊ฒ ๊ฐ๊ธดํ๋ฐ
๋ค๋ฅธ ๋ต ํด์ค์ ๋ณด๋
์ฌ๊ทํจ์์์ n=1 ์ผ๋ ๋ฆฌํดํ๋ ๋ฐฉ์์ผ๋ก ์กฐ๊ฑด์ ๊ฑธ์๋๋
๋์ฒ๋ผ ์์ธ์ฒ๋ฆฌ ์์ด ์ ํ๋ฆฌ๋ ๊ฒ ๊ฐ์๋ค
์กฐ๋ง๊ฐ ๊ทธ ํ์ด๋ก ๋ค์ ๋์ ํด๋ด์ผ์ง
'๐ Baaaaaarking > 0x0B๊ฐ - ์ฌ๊ท' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ S3] 2603๋ฒ: ์์ข ์ด ๋ง๋ค๊ธฐ (0) | 2022.05.22 |
---|---|
[BOJ S2][C++] ๋ฐฑ์ค 1780๋ฒ : ์ข ์ด์ ๊ฐ์ (0) | 2022.05.19 |
[BOJ S5] ๋ฐฑ์ค 17478๋ฒ: ์ฌ๊ทํจ์๊ฐ ๋ญ๊ฐ์? (0) | 2022.05.17 |
[BOJ S1][C++] ๋ฐฑ์ค 11729๋ฒ: ํ๋ ธ์ด ํ ์ด๋ ์์ (0) | 2022.05.11 |
[BOJ S1][C++] ๋ฐฑ์ค 1629๋ฒ: ๊ณฑ์ (0) | 2022.05.04 |