๋ค์์ด๋ ๊ธฐํ๋ฅผ ๋ง์ด ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ๊ธฐํ๋ ๋ชจ๋ ๋ค๋ฅธ ์๋ฆฌ์ผ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ค์์ด๋ ๊ธฐํ๋ฅผ ๋นจ๋ฆฌ ์ฐพ์์ ๋นจ๋ฆฌ ์ฌ๋๋ค์๊ฒ ์ฐ์ฃผํด์ฃผ๊ธฐ ์ํด์ ๊ธฐํ๋ฅผ ์๋ฆฌ์ผ ๋ฒํธ ์์๋๋ก ์ ๋ ฌํ๊ณ ์ ํ๋ค.
๋ชจ๋ ์๋ฆฌ์ผ ๋ฒํธ๋ ์ํ๋ฒณ ๋๋ฌธ์ (A-Z)์ ์ซ์ (0-9)๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
์๋ฆฌ์ผ๋ฒํธ A๊ฐ ์๋ฆฌ์ผ๋ฒํธ B์ ์์ ์ค๋ ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- A์ B์ ๊ธธ์ด๊ฐ ๋ค๋ฅด๋ฉด, ์งง์ ๊ฒ์ด ๋จผ์ ์จ๋ค.
- ๋ง์ฝ ์๋ก ๊ธธ์ด๊ฐ ๊ฐ๋ค๋ฉด, A์ ๋ชจ๋ ์๋ฆฌ์์ ํฉ๊ณผ B์ ๋ชจ๋ ์๋ฆฌ์์ ํฉ์ ๋น๊ตํด์ ์์ ํฉ์ ๊ฐ์ง๋ ๊ฒ์ด ๋จผ์ ์จ๋ค. (์ซ์์ธ ๊ฒ๋ง ๋ํ๋ค)
- ๋ง์ฝ 1,2๋ฒ ๋ ์กฐ๊ฑด์ผ๋ก๋ ๋น๊ตํ ์ ์์ผ๋ฉด, ์ฌ์ ์์ผ๋ก ๋น๊ตํ๋ค. ์ซ์๊ฐ ์ํ๋ฒณ๋ณด๋ค ์ฌ์ ์์ผ๋ก ์๋ค.
์๋ฆฌ์ผ์ด ์ฃผ์ด์ก์ ๋, ์ ๋ ฌํด์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๊ธฐํ์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ์๋ฆฌ์ผ ๋ฒํธ๊ฐ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์๋ฆฌ์ผ ๋ฒํธ์ ๊ธธ์ด๋ ์ต๋ 50์ด๊ณ , ์ํ๋ฒณ ๋๋ฌธ์ ๋๋ ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค. ์๋ฆฌ์ผ ๋ฒํธ๋ ์ค๋ณต๋์ง ์๋๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ ์ฐจ๋ก๋๋ก N๊ฐ์ ์ค์ ํ์ค์ ํ๋์ฉ ์๋ฆฌ์ผ ๋ฒํธ๋ฅผ ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int count(string s) {
int ans = 0;
for(int i=0; i<s.size(); i++) {
if(isdigit(s[i])) {
ans += s[i]-'0';
}
}
return ans;
}
bool cmp(string a, string b) {
if(a.size() != b.size()) return a.size() < b.size();
if(count(a) != count(b)) return count(a) < count(b);
return a < b;
}
int main() {
int n;
cin >> n;
vector<string> v(n);
for(int i=0; i<n; i++) cin >> v[i];
sort(v.begin(), v.end(), cmp);
for(int i=0; i<n; i++) cout << v[i] << "\n";
return 0;
}
/*
*/
'๐๏ธ ICPC Sinchon > Sorting' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ S1][C++] ๋ฐฑ์ค 1946๋ฒ : ์ ์ ์ฌ์ (0) | 2022.09.06 |
---|---|
[BOJ S4][C++] ๋ฐฑ์ค 1026๋ฒ : ๋ณด๋ฌผ (0) | 2022.09.06 |
[BOJ S4][C++] ๋ฐฑ์ค 1758๋ฒ : ์๋ฐ์ ๊ฐํธ (0) | 2022.09.06 |
[BOJ S5][C++] 11651๋ฒ: ์ขํ ์ ๋ ฌํ๊ธฐ 2 (0) | 2022.09.06 |
[BOJ S4][C++] ๋ฐฑ์ค 10825๋ฒ : ๊ตญ์์ (0) | 2022.09.04 |