No Rules Rules

단어 수학 (feat. 백준, 1339번) 본문

생활/코테

단어 수학 (feat. 백준, 1339번)

개발하는 완두콩 2022. 9. 7. 12:04
728x90
반응형

단어 수학
https://www.acmicpc.net/problem/1339

 

1339번: 단어 수학

첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대

www.acmicpc.net

 

반응형

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <cstring>
#include <map>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
inline bool cmp(const pair<char, long long>& v1, const pair<char, long long>& v2) {
	return v1.second > v2.second;
}
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
	register int N;
	string str;
	map<char, long long> ans;
	cin >> N;
	for (register int n = 0, tmp; n < N; ++n) {
		cin >> str;
		tmp = 0;
		for (register int i = str.size() - 1; i >= 0; --i)
			ans[str.at(i)] += static_cast<long long>(pow(10, tmp++));
	}
	vector<pair<char, long long>> ansv(ans.begin(), ans.end());
	sort(ansv.begin(), ansv.end(), cmp);
	register long long answer = 0, temp = 9;
	for (auto& v : ansv)
		answer += v.second * (temp--);
	cout << answer;
	return 0;
}
// *&)*@*

 

  1. 예로 ABC, BCA를 보겠습니다.
  2. ABC = 100A + 10B + 1C, BCA = 100B + 10C + 1A 입니다.
    따라서 ABC + BCA = 101A + 110B + 11C 입니다.
  3. 문자 앞의 값을 내림차순 기준으로 본다면 110B + 101A + 11C 순서이고 9부터 문자에 대입한다면
    110 * 9 + 101 * 8 + 11 * 7 = 1875 가 정답이 됩니다.

 

 

728x90
반응형

'생활 > 코테' 카테고리의 다른 글

불 (feat. 백준, 5427번)  (0) 2022.09.07
불! (feat. 백준, 4179번)  (0) 2022.09.07
신비로운 수 (feat. 백준, 17433번)  (0) 2022.09.06
같은 나머지 (feat. 백준, 1684번)  (0) 2022.09.06
Steps (feat. 백준, 4395번)  (0) 2022.09.06
Comments