https://www.acmicpc.net/problem/1339
๋ฌธ์
๋ฏผ์์ด๋ ์ํํ์์์ ๋จ์ด ์ํ ๋ฌธ์ ๋ฅผ ํธ๋ ์์ ๋ฅผ ๋ฐ์๋ค.
๋จ์ด ์ํ ๋ฌธ์ ๋ N๊ฐ์ ๋จ์ด๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๊ฐ ๋จ์ด๋ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค. ์ด๋, ๊ฐ ์ํ๋ฒณ ๋๋ฌธ์๋ฅผ 0๋ถํฐ 9๊น์ง์ ์ซ์ ์ค ํ๋๋ก ๋ฐ๊ฟ์ N๊ฐ์ ์๋ฅผ ํฉํ๋ ๋ฌธ์ ์ด๋ค. ๊ฐ์ ์ํ๋ฒณ์ ๊ฐ์ ์ซ์๋ก ๋ฐ๊ฟ์ผ ํ๋ฉฐ, ๋ ๊ฐ ์ด์์ ์ํ๋ฒณ์ด ๊ฐ์ ์ซ์๋ก ๋ฐ๋์ด์ง๋ฉด ์ ๋๋ค.
์๋ฅผ ๋ค์ด, GCF + ACDEB๋ฅผ ๊ณ์ฐํ๋ค๊ณ ํ ๋, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7๋ก ๊ฒฐ์ ํ๋ค๋ฉด, ๋ ์์ ํฉ์ 99437์ด ๋์ด์ ์ต๋๊ฐ ๋ ๊ฒ์ด๋ค.
N๊ฐ์ ๋จ์ด๊ฐ ์ฃผ์ด์ก์ ๋, ๊ทธ ์์ ํฉ์ ์ต๋๋ก ๋ง๋๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋จ์ด์ ๊ฐ์ N(1 ≤ N ≤ 10)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๋จ์ด๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ๋จ์ด๋ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ์๋ค. ๋ชจ๋ ๋จ์ด์ ํฌํจ๋์ด ์๋ ์ํ๋ฒณ์ ์ต๋ 10๊ฐ์ด๊ณ , ์์ ์ต๋ ๊ธธ์ด๋ 8์ด๋ค. ์๋ก ๋ค๋ฅธ ๋ฌธ์๋ ์๋ก ๋ค๋ฅธ ์ซ์๋ฅผ ๋ํ๋ธ๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง ๋จ์ด์ ํฉ์ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
ํ์ด
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int solution(int n, vector<string>&word) {
vector<int> weight(26, 0); // ์ํ๋ฒณ๋ค์ ๊ฐ์ค์น๋ฅผ ๋ด๋ ๋ฒกํฐ
for(int i=0; i<n; i++) {
int length = word[i].size();
for(int j=0; j<length; j++)
weight[word[i][j]-'A'] += pow(10, length-1-j); // ํด๋น ์ํ๋ฒณ์ด ๊ฐ์ง๋ ๊ฐ์ค์น๋ฅผ ๋ฒกํฐ์ ๋ฃ์ด์ค๋ค
}
sort(weight.begin(), weight.end(), greater<>()); // ๊ฐ์ค์น ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
int sum = 0;
int tmp = 9; // ๋ฐฐ์ ํ ๊ฐ -> ๊ฐ์ค์น๊ฐ ํฐ ์์๋๋ก ๋ฐ๋ก ๊ณฑํด์ ๋ํด์ค
for(int i=0; i<10; i++) { // ์ํ๋ฒณ ์ข
๋ฅ๋ 10๊ฐ๋ฅผ ๋์ง ์์
sum += tmp * weight[i];
tmp--;
}
return sum;
}
int main() {
ios_base :: sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int n;
cin >> n;
vector<string> word(n);
for(int i=0; i<n; i++)
cin >> word[i];
cout << solution(n, word);
return 0;
}
/*
*/
'๐๏ธ ICPC Sinchon > Greedy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] 20921๋ฒ: ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด (0) | 2023.01.31 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 14659๋ฒ: ํ์กฐ์์ด์ ๋ฆฌํ๊ณ ์ดใ ใ (0) | 2023.01.31 |
[BOJ G5][C++] ๋ฐฑ์ค 11000๋ฒ: ๊ฐ์์ค ๋ฐฐ์ (์๊ฐ์ด๊ณผ) (0) | 2022.10.11 |
[BOJ S4][C++] ๋ฐฑ์ค 11399๋ฒ: ATM (0) | 2022.10.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฝ๋ฉํ ์คํธ ์ฐ์ต ํ์๋ฒ(Greedy): ์ฒด์ก๋ณต (0) | 2022.10.11 |