지이이이ㅣ이인짜 많이 헤맸는데, 결과적으론 처음 짠 코드에서 index 처리를 잘 못해서 지구 한바퀴 돈 셈이다. 우울하다 진짜...
#include <bits/stdc++.h>
#define fastio ios::sync_with_stdio(0), cin.tie(0)
using namespace std;
string arr[10];
bool check[26];
char alphabet[10];
int match[26];
int n, ans = 0, tot = 0;
void input() {
fastio;
cin >> n;
for(int i = 0; i < n; ++i) {
cin >> arr[i];
for(int j = 0; j < arr[i].size(); ++j) {
if(check[arr[i][j] - 'A']) continue;
check[arr[i][j] - 'A'] = true;
alphabet[tot++] = arr[i][j];
}
}
}
int getNum(string& s) {
int ret = 0;
for(char& c : s){
ret *= 10;
ret += match[c - 'A'];
}
return ret;
}
void d(int visited, int cnt) {
if(visited == (1 << tot)-1) {
int sum = 0;
for(int i = 0; i < n; ++i) {
sum += getNum(arr[i]);
}
ans = max(ans, sum);
}
for(int i = 0; i < tot; ++i) {
if(visited & (1 << i)) continue;
match[alphabet[i] - 'A'] = cnt;
d(visited | (1 << i), cnt-1);
}
}
int main() {
input();
d(0, 9);
cout << ans;
}
백준 1103 게임 혼내주기 (0) | 2021.08.01 |
---|---|
백준 1062 가르침 혼내주기 (0) | 2021.08.01 |
백준 7453 합이 0인 네 정수 혼내주기 (0) | 2021.08.01 |
백준 2143 두 배열의 합 혼내주기 (0) | 2021.08.01 |
백준 19598 최소 회의실 개수 혼내주기 (0) | 2021.08.01 |
댓글 영역