๋ฌธ์
์ฝ๋
#include <iostream>
#include <memory.h>
using namespace std;
int arr[6][3];
bool flag_check(){
for(int i=0; i<6; i++){
for(int k=0; k<3; k++){
if(arr[i][k] != 0) return false;
}
}
return true;
}
bool flag = false;
void backtracking(int idx, int next, int depth){
if(idx == 5 && depth == 15){
if(flag_check()) flag = true;
return;
}
if(arr[idx][0] > 0 && arr[next][2] > 0){
arr[idx][0]--;
arr[next][2]--;
backtracking(idx, next + 1, depth + 1);
arr[idx][0]++;
arr[next][2]++;
}
if(arr[idx][1] > 0 && arr[next][1] > 0){
arr[idx][1]--;
arr[next][1]--;
backtracking(idx, next + 1, depth + 1);
arr[idx][1]++;
arr[next][1]++;
}
if(arr[idx][2] > 0 && arr[next][0] > 0){
arr[idx][2]--;
arr[next][0]--;
backtracking(idx, next + 1, depth + 1);
arr[idx][2]++;
arr[next][0]++;
}
if(idx < 5) backtracking(idx + 1, idx + 2, depth);
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
for(int i=0; i<4; i++){
memset(arr, 0, sizeof(arr));
int c = 0;
for(int k=0; k<18; k++){
cin>>arr[k/3][c];
c++;
if(c == 3) c = 0;
}
backtracking(0, 1, 0);
if(flag) cout<<1<<' ';
else cout<<0<<' ';
flag = false;
}
}
ํ์ด
์ฒ์์ ๋ฐฑํธ๋ํน ์์ด ๋จ์ํ๊ฒ ์กฐ๊ฑด๋ฌธ ๋ช ๊ฐ ์ถ๊ฐํด์ ์น ๋ฌด ํจ์ ํฉ์ ๊ฐ์ง๊ณ ํ๋จํ ์ ์์๊น ์๊ฐํ์ง๋ง ๊ฒฐ๊ตญ ๊ทธ๋ฐ ์์ผ๋ก ๊ตฌํํ์ง ๋ชปํ๋ค๋ ์ฌ์ค์ ๊นจ๋ฌ์์ต๋๋ค.
์ผ๋จ ๊ฐ ๋๋ผ๋ค์ ๋ชจ๋ ๋๋ผ์ ๋ฌด์กฐ๊ฑด ํ๋ฒ์ฉ ๊ฒฝ๊ธฐ๋ฅผ ์งํํด์ผ ํฉ๋๋ค. ๋ฌธ์ ํ์ด ์์ด๋์ด๋ ์๋์ ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ์ ๊ฑฐ์ ์ ์ฌํ๊ฒ ํ์์ต๋๋ค.
๊ฒฝ๊ธฐ ์งํ์ ์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- A ๋๋ผ๋ B, C, D, E, F์ ๋๋ผ์ ๊ฒฝ๊ธฐ๋ฅผ ์งํํด์ผ ํฉ๋๋ค.
- B ๋๋ผ๋ C, D, E, F ๋๋ผ์ ๊ฒฝ๊ธฐ๋ฅผ ์งํํด์ผ ํฉ๋๋ค. (A๊ฐ ์๋ ์ด์ ๋ ์์์ A ๋๋ผ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก์์ ๋ A์ B๋๋ผ๋ ๊ฒฝ๊ธฐ๋ฅผ ์งํํ๊ธฐ ๋๋ฌธ์ ๋๋ค.)
- C๋๋ผ๋ D, E, F ๋๋ผ์ ๊ฒฝ๊ธฐ๋ฅผ ์งํํด์ผ ํฉ๋๋ค.
- D๋๋ผ๋ E, F ๋๋ผ์ ๊ฒฝ๊ธฐ๋ฅผ ์งํดํด์ผ ํฉ๋๋ค.
- E๋๋ผ๋ F ๋๋ผ์ ๊ฒฝ๊ธฐ๋ฅผ ์งํํด์ผ ํฉ๋๋ค.
์ฆ, ์ด 15๋ฒ์ ๊ฒฝ๊ธฐ๋ฅผ ์งํํ๊ฒ ๋ฉ๋๋ค.
๋ฌธ์ ํ์ด ์์ด๋์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
A๋๋ผ๊ฐ B, C, D, E, F ๊ฐ๊ฐ์ ๋๋ผ์์ ๊ฒฝ๊ธฐ์์ ์ด๊ฒผ์ ๋, ๋น๊ฒผ์ ๋, ์ก์ ๋์ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ํ๋ฉด์ ์ต์ข ์ ์ผ๋ก ๋ชจ๋ ๋๋ผ์ ์น ๋ฌด ํจ ๊ฐ 0์ด ๋๋์ง ํ์ธํ๋ฉด ๋ฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 14500๋ฒ - ํ ํธ๋ก๋ฏธ๋ ธ (0) | 2022.09.18 |
---|---|
[๋ฐฑ์ค,c++] 21278๋ฒ - ํธ์์ด ๋ ๋ง๋ฆฌ ์นํจ (0) | 2022.09.18 |
[๋ฐฑ์ค,c++] 15661๋ฒ - ๋งํฌ์ ์คํํธ (0) | 2022.09.18 |
[๋ฐฑ์ค,c++] 21608๋ฒ - ์์ด ์ด๋ฑํ๊ต (0) | 2022.09.18 |
[๋ฐฑ์ค,c++] 22856๋ฒ - ํธ๋ฆฌ ์ํ (0) | 2022.09.18 |
[๋ฐฑ์ค,c++] 16719๋ฒ - ZOAC (0) | 2022.09.16 |
๋๊ธ