Algorithm ๐ง๐ป๐ป/๋ฐฑ์ค(BOJ)
[๋ฐฑ์ค,c++] 1431๋ฒ - ์๋ฆฌ์ผ ๋ฒํธ
dkswnkk
2021. 11. 7. 23:10
14391๋ฒ: ์ข ์ด ์กฐ๊ฐ
์์ ์ด๋ ์ซ์๊ฐ ์ฐ์ฌ ์๋ ์ง์ฌ๊ฐํ ์ข ์ด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ข ์ด๋ 1×1 ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ ์นธ์ผ๋ก ๋๋์ด์ ธ ์๊ณ , ์ซ์๋ ๊ฐ ์นธ์ ํ๋์ฉ ์ฐ์ฌ ์๋ค. ํ์ ์์์๋ถํฐ ์๋๊น์ง ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๊ณ ,
www.acmicpc.net
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool cmp(string a, string b) {
if (a.length() != b.length()) return a.length() < b.length(); //๊ธธ์ด๊ฐ ๋ค๋ฅธ๊ฒฝ์ฐ ์งง์ ๊ฒ ๋ถํฐ ๋์ด
else { //๊ธธ์ด๊ฐ ๊ฐ์๊ฒฝ์ฐ
int sumA=0,sumB= 0;
for (int i = 0; i <a.length(); i++) {
if (a[i] - '0' >= 0 && a[i] - '0' <= 9) sumA += a[i] - '0';
if (b[i] - '0' >= 0 && b[i] - '0' <= 9) sumB += b[i] - '0';
}
if (sumA != sumB) return sumA < sumB; // ํฉ์ด ์์๊ฒ ์์ผ๋ก
else return a < b; //ํฉ์ด ๊ฐ์๊ฒฝ์ฐ ์ฌ์ ์์ผ๋ก
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int N; cin >> N;
vector<string>v;
while (N--) {
string s; cin >> s;
v.push_back(s);
}
sort(v.begin(), v.end(), cmp);
for (string s : v) {
cout << s << "\n";
}
}