๐Ÿ’ป

[๋ฐฑ์ค€] ๋ฐฑํŠธ๋ž˜ํ‚น - 6603. ๋กœ๋˜ ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฌธ์ œํ’€์ด Baekjoon

[๋ฐฑ์ค€] ๋ฐฑํŠธ๋ž˜ํ‚น - 6603. ๋กœ๋˜

๋˜ํšจ๋‹ˆ 2020. 2. 3. 10:00

๋ฌธ์ œ

๋…์ผ ๋กœ๋˜๋Š” {1, 2, ..., 49}์—์„œ ์ˆ˜ 6๊ฐœ๋ฅผ ๊ณ ๋ฅธ๋‹ค.

๋กœ๋˜ ๋ฒˆํ˜ธ๋ฅผ ์„ ํƒํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์ „๋žต์€ 49๊ฐ€์ง€ ์ˆ˜ ์ค‘ k(k>6)๊ฐœ์˜ ์ˆ˜๋ฅผ ๊ณจ๋ผ ์ง‘ํ•ฉ S๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ๊ทธ ์ˆ˜๋งŒ ๊ฐ€์ง€๊ณ  ๋ฒˆํ˜ธ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, k=8, S={1,2,3,5,8,13,21,34}์ธ ๊ฒฝ์šฐ ์ด ์ง‘ํ•ฉ S์—์„œ ์ˆ˜๋ฅผ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ์ด 28๊ฐ€์ง€์ด๋‹ค. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34])

์ง‘ํ•ฉ S์™€ k๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ˆ˜๋ฅผ ๊ณ ๋ฅด๋Š” ๋ชจ๋“  ๋ฐฉ๋ฒ•์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ˆ˜๋Š” k (6 < k < 13)์ด๊ณ , ๋‹ค์Œ k๊ฐœ ์ˆ˜๋Š” ์ง‘ํ•ฉ S์— ํฌํ•จ๋˜๋Š” ์ˆ˜์ด๋‹ค. S์˜ ์›์†Œ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค.

์ž…๋ ฅ์˜ ๋งˆ์ง€๋ง‰ ์ค„์—๋Š” 0์ด ํ•˜๋‚˜ ์ฃผ์–ด์ง„๋‹ค. 

 

์ถœ๋ ฅ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ์ˆ˜๋ฅผ ๊ณ ๋ฅด๋Š” ๋ชจ๋“  ๋ฐฉ๋ฒ•์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ด๋•Œ, ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์‚ฌ์ด์—๋Š” ๋นˆ ์ค„์„ ํ•˜๋‚˜ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ1

7 1 2 3 4 5 6 7
8 1 2 3 5 8 13 21 34
0

 

์˜ˆ์ œ ์ถœ๋ ฅ1

1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7

1 2 3 5 8 13
1 2 3 5 8 21
1 2 3 5 8 34
1 2 3 5 13 21
1 2 3 5 13 34
1 2 3 5 21 34
1 2 3 8 13 21
1 2 3 8 13 34
1 2 3 8 21 34
1 2 3 13 21 34
1 2 5 8 13 21
1 2 5 8 13 34
1 2 5 8 21 34
1 2 5 13 21 34
1 2 8 13 21 34
1 3 5 8 13 21
1 3 5 8 13 34
1 3 5 8 21 34
1 3 5 13 21 34
1 3 8 13 21 34
1 5 8 13 21 34
2 3 5 8 13 21
2 3 5 8 13 34
2 3 5 8 21 34
2 3 5 13 21 34
2 3 8 13 21 34
2 5 8 13 21 34
3 5 8 13 21 34

 

์ƒ๊ฐ

์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ํ•œ์ฐธ๋™์•ˆ ํ’€๋ฆฌ์ง€ ์•Š๋Š”๋‹ค๋ฉด, https://www.acmicpc.net/workbook/view/2052 ์—์„œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๊ณ  ์—ฐ์Šต์„ ํ•˜๋Š” ๊ฒƒ์„

 

๋ฌธ์ œ์ง‘: N๊ณผ M (baekjoon)

 

www.acmicpc.net

์ถ”์ฒœํ•œ๋‹ค. ๋‚˜๋„ ์ฒ˜์Œ์— ์‚ฝ์งˆ๋งŒ ํ•˜๋‹ค๊ฐ€ ๋ช‡ ๋ฌธ์ œ ํ’€์–ด๋ณด๊ณ  ๊ฐ์„ ์ข€ ์žก์€ ํ›„์— ๋ฌธ์ œ๋กœ ๋‹ค์‹œ ๋Œ์•„์™€์„œ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

์ž…๋ ฅ ์กฐ๊ฑด์€ while๋ฌธ ๋ฌดํ•œ๋ฃจํ”„๋กœ ๋Œ๋‹ค๊ฐ€ 0์„ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด break๋ฅผ ์จ์„œ ๋น ์ ธ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ๊ฑฐ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. 

์ฒซ๋ฒˆ์งธ ์ œ์ถœ์‹œ๋„์—  '์ถœ๋ ฅ ํ˜•์‹์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.'  ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›๊ณ  ์‹คํŒจํ–ˆ๋‹ค. ๋˜ ๋ญ˜ ์ž˜๋ชปํ–ˆ๋‚˜ ํ•ด์„œ ๋ดค๋”๋‹ˆ ์ค„๋ฐ”๊ฟˆ์ด ์ถœ๋ ฅ ํ˜•์‹ ์กฐ๊ฑด์ด์—ˆ๋‹ค.  

 

์ž‘์„ฑํ•œ ์ฝ”๋“œ

#include <iostream>

#define MAX 6
using namespace std;

int check[MAX];
int arr[13];
int n;
void DFS(int index, int cnt){
    if(cnt == 6){
        for(int i=0; i<6; i++){
            cout << check[i] << " ";
        }
        cout << "\n";
        return;
    }
    for(int i=index; i<n; i++){
        check[cnt] = arr[i];
        DFS(i+1, cnt+1);
    }
}
int main(int argc, const char * argv[]) {
    // insert code here...
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    while(true){
        cin >> n;
        
        if(n==0){
            break;
        }
        for(int i=0; i<n; i++){
            cin >> arr[i];
        }
        DFS(0, 0);
        cout << "\n";
    }
    return 0;
}
๋ฐ˜์‘ํ˜•
Comments