[난이도] Gold4
[유형] Brute force, Simulation
[풀이]
next_permutation을 이용해 모든 경우를 다 해보면 된다.
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int N,a[50][9],res;
int main(){
scanf("%d",&N);
for(int i=0;i<N;i++)
for(int j=0;j<9;j++) scanf("%d",&a[i][j]);
vector<int> p = {1,2,3,4,5,6,7,8};
do{
vector<int> seq = p;
seq.insert(seq.begin()+3,0);
int scr = 0,j=0;
for(int i=0;i<N;i++){
vector<bool> pos(3);
int out=0;
while(out<3){
int cmd = a[i][seq[j]];
if(cmd==0) out++;
else if(cmd<4){
for(int k=2;k>=0;k--){
if(pos[k]==1) {
int nxt = k+cmd;
if(nxt > 2) scr++;
else pos[nxt] = 1;
pos[k]=0;
}
}
pos[cmd-1]=1;
}else {
for(int k=2;k>=0;k--){
scr+=pos[k];
pos[k]=0;
}
scr++;
}
j=(j+1)%9;
}
}
res = max(res,scr);
}while(next_permutation(p.begin(),p.end()));
printf("%d",res);
}
github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Gold4/17281.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Gold4] 17404: RGB거리2 (C++) (0) | 2020.12.13 |
---|---|
[BOJ/백준][Gold4] 17298 : 오큰수 (C++) (0) | 2020.12.13 |
[BOJ/백준][Gold4] 17140 : 이차원 배열과 연산 (C++) (0) | 2020.12.13 |
[BOJ/백준][Gold4] 17135 : 캐슬 디펜스 (C++) (0) | 2020.12.13 |
[BOJ/백준][Gold4] 1647 : 도시 분할 계획(C++) (0) | 2020.12.13 |