https://www.acmicpc.net/problem/1339
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
int N;
int alphabet[26];
vector <string> number;
bool compare(int a, int b){
if(a>b) return true;
return false;
}
void calculate(){
for(int i=0;i<N;i++){
string now = number[i];
int len = now.length();
int pow = 1;
for(int j=len-1;j>=0;j--){
int tempNum = now[j] - 'A';
alphabet[tempNum] = alphabet[tempNum] + pow;
pow = pow *10;
}
}
sort(alphabet, alphabet+26,compare);
int result = 0;
int number = 9;
for(int i=0;i<26;i++){
if(alphabet[i]==0) break;
result = result + (alphabet[i]*number);
number--;
}
cout<<result<<"\n";
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
// freopen("input.txt","r",stdin);
cin>>N;
for(int i=0;i<N;i++){
string temp;
cin>>temp;
number.push_back(temp);
}
calculate();
return 0;
}
'개발자 > algorithm' 카테고리의 다른 글
백준 1010번 : 다리 놓기 (c++) (0) | 2020.03.20 |
---|---|
2018 카카오 코딩테스트 1번 : 비밀지도 (c++) (0) | 2020.03.18 |
백준 1920번 : 수 찾기 (c++ 시간 초과 해결) (0) | 2020.03.09 |
백준 1759번 : 암호 만들기 (c++) (0) | 2020.03.08 |
백준 9663번 : N-Queen (c++) (0) | 2020.03.08 |