Gidhub BE Developer

[BOJ] 선발 명단

2018-02-06
goodGid

Problem

Problem URL : 선발 명단


Answer Code


#include<iostream>
#include<algorithm>
using namespace std;

int map[12][12];
int pos_y[12];

int dfs(int x,int value){
    if( x > 11 ) return value;
    int ans = 0;
    for(int i=1; i<=11; i++){
        if(map[x][i] != 0 && !pos_y[i]){
            pos_y[i] = 1;
            ans = max( ans, dfs(x+1, value + map[x][i]) ) ;
            pos_y[i] = 0;
        }
    }
    return ans;
}

int main(){
    int tc;
    cin >> tc;
    while (tc--) {
        for(int i=1; i<=11; i++){
            for(int j=1; j<=11; j++){
                scanf("%d",&map[i][j]);
            }
        }
        int ans = 0;
        for(int i=1; i<=11; i++){
            if( map[1][i] ){
                pos_y[i] = 1;
                ans = max ( ans, dfs(2 ,map[1][i]));
                pos_y[i] = 0;
            }
        }
        printf("%d\n",ans);
    }
    
    return 0;
}



Feed Back (18. 02. 05)

  • 알쿡 대회에 출제되었던 구현 문제

  • 대회 때 시간이 없어서 아예 보지도 못했던 문제

  • 이거 너무 쉬운데?… 물론 자잘한 실수로 인해 One Shot은 못했지만 ㅎㅎ


Recommend

Index