๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 6987๋ฒˆ - ์›”๋“œ์ปต

by dkswnkk 2022. 9. 18.

๋ฌธ์ œ

 

6987๋ฒˆ: ์›”๋“œ์ปต

์›”๋“œ์ปต ์กฐ๋ณ„ ์ตœ์ข… ์˜ˆ์„ ์—์„œ๋Š” 6๊ฐœ๊ตญ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฐ ์กฐ๋ณ„๋กœ ๋™์ผํ•œ ์กฐ์— ์†Œ์†๋œ ๊ตญ๊ฐ€๋“ค๊ณผ ํ•œ ๋ฒˆ์”ฉ, ๊ฐ ๊ตญ๊ฐ€๋ณ„๋กœ ์ด 5๋ฒˆ์˜ ๊ฒฝ๊ธฐ๋ฅผ ์น˜๋ฅธ๋‹ค. ์กฐ๋ณ„๋ฆฌ๊ทธ๊ฐ€ ๋๋‚œ ํ›„, ๊ธฐ์ž๊ฐ€ ๋ณด๋‚ด์˜จ ๊ฐ ๋‚˜๋ผ์˜ ์Šน, ๋ฌด์Šน๋ถ€

www.acmicpc.net

 

์ฝ”๋“œ

#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;
    }
    
}

 

ํ’€์ด

์ฒ˜์Œ์— ๋ฐฑํŠธ๋ž™ํ‚น ์—†์ด ๋‹จ์ˆœํ•˜๊ฒŒ ์กฐ๊ฑด๋ฌธ ๋ช‡ ๊ฐœ ์ถ”๊ฐ€ํ•ด์„œ ์Šน ๋ฌด ํŒจ์˜ ํ•ฉ์„ ๊ฐ€์ง€๊ณ  ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์„๊นŒ ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

์ผ๋‹จ ๊ฐ ๋‚˜๋ผ๋“ค์€ ๋ชจ๋“  ๋‚˜๋ผ์™€ ๋ฌด์กฐ๊ฑด ํ•œ๋ฒˆ์”ฉ ๊ฒฝ๊ธฐ๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ํ’€์ด ์•„์ด๋””์–ด๋Š” ์•„๋ž˜์˜ ์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ์™€ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜๊ฒŒ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค.

 

[๋ฐฑ์ค€,c++] 15658๋ฒˆ - ์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ (2)

๋ฌธ์ œ 15658๋ฒˆ: ์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ (2) ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(2 ≤ N ≤ 11)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” A1, A2, ..., AN์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Ai ≤ 100) ์…‹์งธ ์ค„์—๋Š” ํ•ฉ์ด N-1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 4N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ 4

dkswnkk.tistory.com

๊ฒฝ๊ธฐ ์ง„ํ–‰์€ ์ž˜ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • 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์ด ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€