https://www.acmicpc.net/problem/18809
์ฒซ๋ฒ์งธ ์ฝ๋
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
struct seed {
int y, x;
};
int map[50][50];
vector<seed> landToSeed;
vector<seed> Green;
vector<seed> Red;
int N, M, G, R;
vector<int> g;
vector<int> r;
int dir_y[4] = {0,1,0,-1};
int dir_x[4] = {1,0,-1,0};
void printVector(vector<int>& a) { // int์ land๋ ๋ฃ์์ ์์๊น?
vector<int>::iterator iter;
for (iter = a.begin(); iter != a.end(); iter++) {
cout << *iter << " ";
}
cout << endl;
}
void printLandVector(vector<seed> a) {
for (int i = 0; i < a.size(); i++) {
cout << a[i].y << " " << a[i].x << endl;
}
}
void adjustSize() {
int dif = Red.size()/R - Green.size()/G;
if (dif>0) { // ๊ธธ์ด ์ฐจ์ด๊ฐ ์์ผ๋ฉด
for (int i = 0; i < dif; i++) {
int last = Green.size();
for (int j = 0; j < G; j++) {
Green.push_back(Green[last - G+j]);
}
}
}
else if (dif<0) {
for (int i = 0; i < -dif; i++) {
int last = Red.size();
for (int j = 0; j < R; j++) {
Red.push_back(Red[last - R + j]);
}
}
}
}
void combi_R(int start, int land_size, vector<seed> tmp) { // ๋จ์ ์ ์ค R ์์ด ๋ฝ๊ธฐ
if (r.size() == R) {
for (int i = r.size() - 1; i >= 0; i--) { // Red ์ฑ์ฐ๊ธฐ
Red.push_back(tmp[r[i]]);
tmp.erase(tmp.begin() + r[i]);
}
adjustSize();
return;
}
for (int i = start + 1; i < land_size; i++) { // 10*5
r.push_back(i);
combi_R(i, land_size, tmp); // 5
r.pop_back();
}
return;
}
void putGR() {
vector<seed> tmp; // ๊ตฌ์กฐ์ฒด vector ๋ณต์ฌํ๊ธฐ (๋ ๊ณต๋ถ)
for (int i = 0; i < landToSeed.size(); i++) { // 10
seed tmp_seed; tmp_seed.y = landToSeed[i].y; tmp_seed.x = landToSeed[i].x;
tmp.push_back(tmp_seed);
}
for (int i = g.size()-1; i >= 0; i--) { // Green ์ฑ์ฐ๊ธฐ
Green.push_back(tmp[g[i]]);
tmp.erase(tmp.begin() + g[i]);
}
combi_R(-1, tmp.size(),tmp); // 10*5
return;
}
void combi_G(int start, int land_size) { // G ์กฐํฉ ๋ฝ๊ธฐ
if (g.size() == G) {
putGR(); // 10*5
return;
}
for (int i = start + 1; i < land_size; i++) { // 10*5*10*5 => 10^3 ์ ๋
g.push_back(i);
combi_G(i, land_size); // ๊น์ด 5
g.pop_back();
}
return;
}
int getFlower(int** map) {
int num = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
if (map[i][j] == 3) {
num++;
}
}
}
return num;
}
bool inMap(int y, int x) {
if (y >= 0 && x >= 0 && y < N && x < M) {
return true;
}
else {
return false;
}
}
int Sowing() {
vector<int> result;
queue<seed> G_queue;
queue<seed> R_queue;
int size = (int)Green.size()/G;
int flower = 0;
cout << "g.size? " << Green.size() << endl;
cout << "r.size? " << Red.size() << endl;
for (int i = 0; i < size; i++) { // 10^5
int** tmp_map = new int*[N]; // ๋์ ํ ๋นํด์ map ๋ณต์ฌ
for (int j = 0; j < N; j++) {
tmp_map[j] = new int[M];
}
for (int j = 0; j < N; j++) {
for (int k = 0; k < M; k++) {
if (map[j][k] == 2) // ์ ์ฑ์์ง 2๋ ์์ ๋ฒ๋ฆฌ๊ธฐ
tmp_map[j][k] = 1;
else
tmp_map[j][k] = map[j][k];
}
}
queue<seed> empty;
swap(G_queue, empty);
queue<seed> empty1;
swap(R_queue, empty1);
int x, y;
for (int j = 0; j < G; j++) {
y = Green[G*i + j].y; // ์ด๋ก์ ๋ฐฐ์์ก ๋ฟ๋ฆฌ๊ธฐ
x = Green[G*i + j].x;
tmp_map[y][x] =0;
//cout << "g : "<< y <<" " << x << endl;
G_queue.push(Green[G*i + j]);
}
for (int j = 0; j < R; j++) {
y = Red[R*i + j].y; // ๋นจ๊ฐ์ ๋ฐฐ์์ก ๋ฟ๋ฆฌ๊ธฐ
x = Red[R*i + j].x;
tmp_map[y][x] = 0;
//cout << "r : " << y << " " << x << endl;
R_queue.push(Red[R*i + j]);
}
int change = 1;
while (change) { // ๋ณํ๊ฐ ์์ ๋๊น์ง ํ์ฐ ์งํ
/*
for (int j = 0; j < N; j++) {
for (int k = 0; k < M; k++) {
cout << tmp_map[j][k] << " ";
}
cout << endl;
}
cout << endl;
*/
change = 0;
int g_size = G_queue.size();
for (int j = 0; j < g_size; j++) { // ์ด๋ก์ ๋ฐฐ์์ก ํ์ฐ
int x_seed = G_queue.front().x; int y_seed = G_queue.front().y;
G_queue.pop();
if (tmp_map[y_seed][x_seed] == 3) // ์ด๋ฏธ ๊ฝ ํผ์ด ๊ณณ์ด๋ฉด ํ์ฐ๋ฅ๋ ฅ x
continue;
for (int k = 0; k < 4; k++) {
x_seed += dir_x[k]; y_seed += dir_y[k];
if (inMap(y_seed, x_seed)) {
int check = tmp_map[y_seed][x_seed];
if (check != 0 && check != 3 && check != -1) {
tmp_map[y_seed][x_seed] *= -1;
change += 1;
seed tmp_seed; tmp_seed.x = x_seed; tmp_seed.y = y_seed;
G_queue.push(tmp_seed);
}
}
x_seed -= dir_x[k]; y_seed -= dir_y[k];
}
}
int r_size = R_queue.size();
for (int j = 0; j < r_size; j++) { // ๋นจ๊ฐ์ ๋ฐฐ์์ก ํ์ฐ
int x_seed = R_queue.front().x; int y_seed = R_queue.front().y;
R_queue.pop();
if (tmp_map[y_seed][x_seed] == 3) // ์ด๋ฏธ ๊ฝ ํผ์ด ๊ณณ์ด๋ฉด ํ์ฐ๋ฅ๋ ฅ x
continue;
for (int k = 0; k < 4; k++) {
x_seed += dir_x[k]; y_seed += dir_y[k];
if (inMap(y_seed, x_seed)) {
int check = tmp_map[y_seed][x_seed];
if (check != 0 && check != 3 && check != -3) {
tmp_map[y_seed][x_seed] *= -3;
if (tmp_map[y_seed][x_seed] == 3) { // ๊ฝ ํผ์ ์ผ๋ฉด
change -= 1; // ๋ค์์ ํ์ฐ x
}
else {
change += 1;
seed tmp_seed; tmp_seed.x = x_seed; tmp_seed.y = y_seed;
R_queue.push(tmp_seed);
}
}
}
x_seed -= dir_x[k]; y_seed -= dir_y[k];
}
}
for (int j = 0; j < N; j++) {
for (int k = 0; k < M; k++) {
if (tmp_map[j][k] < 0) {
tmp_map[j][k] = 0;
}
}
}
}
int flower_num = getFlower(tmp_map);
if (flower_num > flower) {
flower = flower_num;
cout << flower << endl;
}
}
return flower;
}
int main() {
cin >> N >> M >> G >> R;
int index = 0;
for (int i = 0; i < N; i++) { // 10^3
for (int j = 0; j < M; j++) {
cin >> map[i][j];
if (map[i][j] == 2) { // ๋ฐฐ์์ก์ ๋ฟ๋ฆด ์ ์๋ ๋
์ ์ฅ
seed tmp; tmp.y = i; tmp.x = j;
landToSeed.push_back(tmp);
}
}
}
/*
cout << "landToSeed first: " << endl;
printLandVector(landToSeed);
*/
int land_size = landToSeed.size();
combi_G(-1, land_size); // 10^3
cout << Sowing();
}
ํ๋ฆฌ๊ธด ํ๋๋ฐ ๋ณต์กํ๊ณ ์๊ฐ ์ด๊ณผ
set์ ๋ฃ์ด์ ๊ฝํผ์ธ ๊ณณ์ ๊ตฌํ๋ ๊ฒ์ผ๋ก ๊ตฌํํด๋ณด๋ ค๊ณ ํ์ผ๋ ๊ฒน์น๋ ๋ถ๋ถ์ ํ์ ํ๋ ๊ฒ์์ set์ ๋ชจ๋ ์ํํด์ผํ๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๊ฐ ๋๋ฌด ๋์์ง๋ค.
์ฑ๊ณต
vector<seed>::iterator iter;
for (iter = change_set.begin(); iter != change_set.end(); iter++) {
seed tmp = *iter;
if(tmp_map[tmp.y][tmp.x]<0)
tmp_map[tmp.y][tmp.x] = 0;
}
while๋ฌธ ์์์ O(N*M)์ ์ด์ค for๋ฌธ์ ๋๋ฉด์ ์์์ธ ์์น๋ฅผ ์ฐพ์์ 0์ผ๋ก ๋ง๋๋ ์ฝ๋๋ฅผ ํ vector ์์ for๋ฌธ์ ํ์ฌ ๋ฃจํ์์ ๋ฐ๋(ํผ์ง) ๋ฐฐ์์ก ์์น๋ฅผ ์ ์ฅํด๋์ด ํด๋น ์์น๋ง ๊ฒ์ฌํ๊ณ 0์ผ๋ก ๋ง๋๋ ์ฝ๋๋ก ๋ฐ๊พธ์๋๋ ์๊ฐ ์ด๊ณผ๊ฐ ํด๊ฒฐ๋์๋ค. change_set์ด๋ผ๋ ์ถ๊ฐ๋ก vector๋ ์์ชฝ์ ์ ์ํด์ผํ๋ค.
์ฝ๋ ์ค๋ช
์์น๋ฅผ ํธํ๊ฒ ๋ํ๋ด๊ธฐ ์ํด seed๋ผ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ์์! (x ์ขํ, y์ขํ๋ก ๊ตฌ์ฑ)
for (int i = 0; i < N; i++) { // 10^3
for (int j = 0; j < M; j++) {
cin >> map[i][j];
if (map[i][j] == 2) { // ๋ฐฐ์์ก์ ๋ฟ๋ฆด ์ ์๋ ๋
์ ์ฅ
seed tmp; tmp.y = i; tmp.x = j;
landToSeed.push_back(tmp);
}
}
}
garden map์ ์ ์ฅํ๋ฉด์ ๋์์ ๋ฐฐ์์ก์ ๋ฟ๋ฆด ์ ์๋ ๋ ์ landToSeed๋ผ๋ vector์ ์ ์ฅ
void combi_G(int start, int land_size) { // G ์กฐํฉ ๋ฝ๊ธฐ
if (g.size() == G) {
putGR(); // 10*5
return;
}
for (int i = start + 1; i < land_size; i++) { // 10*5*10*5 => 10^3 ์ ๋
g.push_back(i);
combi_G(i, land_size); // ๊น์ด 5
g.pop_back();
}
return;
}
combi_G => putGR => combi_R => adjustSize ํจ์๋ฅผ ๊ฑฐ์ณ ์กฐํฉ์ Green, Red vector์ ์ ์ฅ
adjustSize ํจ์๋ G๊ฐ ๋ฝ์ ์กฐํฉ์ ์ ์ธํ ์ ์ค R์ด ์กฐํฉ์ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ R์ ์กฐํฉ ์๋งํผ G๊ฐ ๋ฐ๋ณต๋ผ์ ๋์์ผํ๋ค. ์ด๋ฅผ ๋ง์ถฐ์ฃผ๊ธฐ ์ํจ์ด๋ค. (์๋์ ๊ทธ๋ฆผ์์ 0,1,2๊ฐ 2๋ฒ ์ค๋ณต๋ผ์ ๋์ค๋ ๊ฒ)
int x, y;
for (int j = 0; j < G; j++) {
y = Green[G*i + j].y; // ์ด๋ก์ ๋ฐฐ์์ก ๋ฟ๋ฆฌ๊ธฐ
x = Green[G*i + j].x;
tmp_map[y][x] = 0;
//cout << "g : "<< y <<" " << x << endl;
G_queue.push(Green[G*i + j]);
}
for (int j = 0; j < R; j++) {
y = Red[R*i + j].y; // ๋นจ๊ฐ์ ๋ฐฐ์์ก ๋ฟ๋ฆฌ๊ธฐ
x = Red[R*i + j].x;
tmp_map[y][x] = 0;
//cout << "r : " << y << " " << x << endl;
R_queue.push(Red[R*i + j]);
}
์ ์ฅํด๋ ์กฐํฉ์ ํ๋ฌถ์์ฉ ๊บผ๋ด์์ (Green์์ G๊ฐ, Red์์ R๊ฐ์ฉ) ๊ฐ๊ฐ -1, -3์ map์ ๋ฃ๋๋ค. (๋ฐฐ์์ก์ ๋ฟ๋ฆฐ๋ค.)
์ด ๋ ์ฝ๋์์๋ 0์ ๋ฃ๊ฒ ๋์ด์๋๋ฐ, ์ด์ฐจํผ ๋์ค์ 0์ผ๋ก ์ด๊ธฐํํด์ค ๊ฒ์ด๋ผ ๊ทธ๋ฐ ๊ฒ์ด๋ค.
while(change){
// ๋๋ฌด ๋ง์ ์๋ต ์์ ์ฝ๋์ ์์
}
๋ณํ๊ฐ ๋์ด์ ์์ ๋๊น์ง queue์ ๋ด๊ธด ์ขํ๋ฅผ ํ๋์ฉ ๊บผ๋ด๊ฐ๋ฉฐ ์ด๋ก์ ๋ฐฐ์์ก์ด ํผ์ง ๋ถ๋ถ์ -1์ ๋นจ๊ฐ์ ๋ฐฐ์์ก์ด ํผ์ง ๋ถ๋ถ์ -3์ ์ ์ฅํ๋ค. ์ด ๋, ๋ ๋ฐฐ์์ก์ด ๋์์ ๋ฟ์ ๊ฒฐ๊ณผ๊ฐ 3์ด ๋๋ ๋ถ๋ถ์์๋ ๊ฝ์ด ํ๋ค. (๊ฝ์ด ํ ๊ฒ์ ๋์ค์ 3์ธ ๊ฒ์ ๊ฐฏ์๋ฅผ ์๋ ๋ฐฉ์์ผ๋ก ๊ณ์ฐํ๋ค.)
๋ค์์ ํผ์ง ์์น๋ฅผ ๊ฐ๊ฐ ์ ์ฅํด์ ๊ฒน์น๋ฉด ๊ฝ์ ๊ฐฏ์๋ฅผ ๋ํ๋ด๋ ๋ณ์๋ฅผ ํ๋์ฉ ์ฆ๊ฐ์ํค๋ ๋ฐฉ์์ผ๋ก๋ ํผ์ง ์์น์ ๊ฐฏ์^2์ ์๊ฐ๋ณต์ก๋๊ฐ ํ์ํ๋ฏ๋ก ๋๋ฌด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค.
๋ค์ ๋ฃจํ์์๋ ํผ์ง ๋ฐฐ์์ก๋ค์ด ๋ค์ ์ฌ๋ฐฉ์ผ๋ก ๋ฐฐ์์ก์ ํผ๋จ๋ฆด ํ ๋ฐ, ์์๊ฐ ํท๊ฐ๋ฆฌ์ง ์๋๋ก ํ์ฌ ๋ฃจํ์์ ํผ์ง ๋ฐฐ์์ก๋ค์ 0์ผ๋ก ์ด๊ธฐํํด์ค๋ค. (๊ฝ์ ํผ์ธ ์ ์๊ณ ๋ฐฐ์์ก๋ ํผ์ง ์ ์๋ ๊ณณ์ด๋ผ๋ ์๋ฏธ๋ก ๊ทธ๋ฅ ํธ์์ฒ๋ผ ์ด๊ธฐํํด์ฃผ์๋ค.)
๊นจ๋ฌ์ ๊ฒ
์ ๋ต ์ฝ๋๋ฅผ ๋ณด๊ณ ๋ฐ์ ์ํฌ ์ ์ ์ ์ด๋ณด์๋ค.
์ฐธ๊ณ : https://blog.encrypted.gg/938?category=730176
- fill ํจ์ ์ฌ์ฉ
fill(iter1,iter2,val);
: ๋ฒ์ ๋ด(first๋ถํฐ(last-1)๊น์ง)์ ์์๋ค์ val๋ก ์ฑ์ด๋ค.
- ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ๋ก ๋ง๋ค์ง ๋ง๊ณ pair ์ฌ์ฉ
๋ณธ์ธ์ ๋ฐ๋ก ๊ตฌ์กฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ๊ตฌํํ์ผ๋, pair๋ฅผ ์ฌ์ฉํ๋ฉด ๊ทธ๋ฌ์ง ์์๋ ๋๋ค.
pair<int,int> state[52][52];
queue<pair<int,int>> q;
- next_permutation
์กฐํฉ์ ๊ตฌํํ๋๋ผ ๊ต์ฅํ ๋ง์ ์๊ฐ์ ์์ํ์๋๋ฐ, ์์ด์ ๊ตฌํํ๋ ํจ์๋ก ํด๊ฒฐํ ์ ์์๋ค :> ํ์ง๋ง ์กฐํฉ์ ๊ตฌํ๋ ํจ์๋ฅผ ์ฒ์ ๊ณต๋ถํด๋ณธ ๊ฒ์ ์์๋ฅผ ๋๊ธฐ๋ก ํ๋ค. ์ ๋ต ๊ณต๊ฐ ๋ธ๋ก๊ทธ์์๋ ์กฐํฉํจ์๋ฅผ ๊ตฌํํ๋ '๋ฐฑํธ๋ํน' ๋ฐฉ๋ฒ์ ๋ค๋ฅธ ์ ๋ต์ผ๋ก ์์ฑํด๋์๋ค.
next_permutation(iter1, iter2);
iter1์์ iter2-1๊น์ง์ ์์ด์ ๊ตฌํ๋ ํจ์, ํธ์ถ ์๋ง๋ค ๋ค์ ์์ด๋ก ๋ฐ๋๊ฒ ํด์ค
- bfs
์ด๋ก, ๋นจ๊ฐ ๋ฐฐ์์ก์ ๋ฐ๋ก ํ์ธํ๋ ๊ฒ ์๋๋ผ Queue์ ๋ค์ด์จ ๋ฐฐ์์ก์ ์์น๋ฅผ ๊บผ๋ด๋ฉด์ ์ฌ๋ฐฉ์ ์ํํ๋ฉฐ 3๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ํ๋จํ์๋ค. ์ด์ ์ฐ์ ํ๋ ์กฐ๊ฑด์ผ๋ก ๋งต์์ ์๊ณ , ํธ์๊ฐ ์๋์ง ๋จผ์ ํ๋จํ์๊ณ , ๋ค์ ๋ฐ๋ฅด๋ 3๊ฐ์ง ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
1) ์์ ๋ฐ๋ฅธ ์ ๋ณด๊ฐ ๋น์ด์์ ๊ฒฝ์ฐ
ํ์ฌ ์์น์ ์์ผ๋ก ์ฑ์์ฃผ๊ณ ์๊ฐ์ 1๋๋ ค์ฃผ๋ฉด ๋๋ค.
2) ๋นจ๊ฐ์ ๋ฐฐ์์ก์ด ํผ์ ธ์๋ ๊ณณ์ผ ๊ฒฝ์ฐ
ํ์ฌ ์์น์ ์์ด ์ด๋ก์์ด๊ณ ๊ฒ์ฌํ๋ ์์น์ ์๊ฐ์ด ํ์ฌ์๊ฐ +1์ด๋ผ๋ฉด ํ์ฌ์๊ฐ์ ๋์์ ํผ์ง ๊ณณ์ด๋ฏ๋ก ๊ฝ์ด ํ๋ค.
3) ์ด๋ก์ ๋ฐฐ์์ก์ด ํผ์ ธ์๋ ๊ณณ์ผ ๊ฒฝ์ฐ
ํ์ฌ ์์น์ ์์ด ๋นจ๊ฐ์์ด๊ณ ๊ฒ์ฌํ๋ ์์น์ ์๊ฐ์ด ํ์ฌ์๊ฐ +1์ด๋ผ๋ฉด ํ์ฌ์๊ฐ์ ๋์์ ํผ์ง ๊ณณ์ด๋ฏ๋ก ๊ฝ์ด ํ๋ค.
๋ณธ์ธ์ ์ด๋ก, ๋นจ๊ฐ ๋ฐฐ์์ก์ ๋ฐ๋ก for๋ฌธ์ ๋๋ฉฐ ํ์ธํ์ผ๋ฉฐ ์๊ฐ์ด ๋ง๋ ๊ฒ์ ํ์ฆํ๊ธฐ ์ํด์ map์ ์ด๋ก์ -1, ๋นจ๊ฐ์ -3์ ๊ณฑํ๋๋ก ํ์ฌ 3์ด ๋๋ฉด ๊ฝ์ด ํ๋ค๊ณ ์๊ฐํ์๋๋ฐ, ์ด๋ ๊ฒ ๊ตฌํํ๋ ๋ฐฐ์์ก์ ํผ์ก์ง๋ง ๊ฝ์ ์ ํ ๋ธ๋ก์ ๋ค์์๊ฐ์ ํท๊ฐ๋ฆฌ์ง ์๋๋ก 0์ผ๋ก ์ด๊ธฐํ ์์ผ์ฃผ์ด์ผํด์ queue์ ๋ค์ด์๋ ์์น์ ๋ํด ์ํ๊ณผ์ ์ด ํ์ํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ ๋ต์ฒ๋ผ ์๊ฐ๊ณผ ์์ด ๋์์ ํํ๋ ์ ์๋๋ก ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ง๋ฉด ๋๋ค.
์๊ฐ์ ๋ํ ์ ๋ณด๋ ์๋ฃ๊ตฌ์กฐ๋ก ํํํ๋ฉด ์ฝ๋ค๋ ๊ฒ์ ์๊ฐ์น ๋ชปํ๋ค. ๊ธฐ๋ณธ์ ์ธ bfs์์ ๋ฐฐ์ด ๋ถ๋ถ์ธ๋ฐ!
๋ํ ๊ฝ์ ๊ฐฏ์๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ ์ฒด๋ฅผ ์ํํ๋ฉฐ 3์ธ ๊ณณ์ ๊ฐฏ์๋ฅผ ์ธ์๋๋ฐ, ์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๊ฝ์ด ํ ๋๋ง๋ค 1์ฉ ์ฆ๊ฐํ๋ ๋ณ์๋ฅผ ๋๋ฉด ๋๋ค.
'Algorithm ๋ฌธ์ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[c++] BOJ 1038๋ฒ :: ๊ฐ์ํ๋ ์ (0) | 2020.04.05 |
---|---|
[c++] BOJ 15961๋ฒ :: ํ์ ์ด๋ฐฅ (0) | 2020.04.02 |
[c++] ๋ฐฑ์ค 18808๋ฒ : ์คํฐ์ปค ๋ถ์ด๊ธฐ (0) | 2020.03.21 |
[c++]๋ฐฑ์ค 17836๋ฒ : ๊ณต์ฃผ๋์ ๊ตฌํด๋ผ! (0) | 2020.03.21 |
[c++]๋ฐฑ์ค 1260๋ฒ : DFS์ BFS (0) | 2020.03.20 |
Comment