๐จ ๋ฌธ์
๋ฌธ์ ๋งํฌ: https://www.acmicpc.net/problem/1431
- ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ: ์ ๋ ฌ
- ๋์ด๋: Silver 3
๐ฌ ํ์ด
1. string์ ์ฌ๋ฌ ๊ฐ ๋ด์ vector, ์ฆ vector<string>์ ์ ๋ ฅ์ ๋ฐ๊ณ ,
2. ๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ cmp()๋ฅผ ์ ์ํด sortํด์ค๋ค.
๋ง์ํ(๋ง๋๋ฐ ์ ์๊พธ ํ๋ฆฌ๋ค๊ณ ํ์ง)์ ํ 945098๋ฒ ํ๊ณ ๋์์ผ
return s1<s2;์์ return์ ๋นผ๋จน์๋ค๋ ๊ฑธ ์ฐพ์๋๋ค. ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ํ. ๋ฐ๋ณธ๊ฐ ์ง์ง
ํน์ const๊ฐ? ์๋ ์ค๋ง &๋๋ฌธ์......? ๋ฑ๋ฑ ๋๋์ฒด ์ด๋๊ฐ ํ๋ฆฐ๊ฑด์ง ์์๋ณด๋ฉด์ ๋๋ถ์ ๊ฐ๋ ๋ณต์ต์ ํ ์ ์์๋ค. ๊ตฟ^^,,
๐ฉ๐ป ์ฝ๋
C++
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int getTotal(const string &s) {
int total = 0;
for (int i = 0; i < s.size(); i++) {
if ('0' <= s[i] && s[i] <= '9') total += (s[i] - '0');
}
return total;
}
bool cmp(const string &s1, const string &s2) {
int len1 = s1.size(), len2 = s2.size();
if (len1 == len2) {
int total1 = getTotal(s1);
int total2 = getTotal(s2);
if (total1 == total2) return s1 < s2;
else return total1 < total2;
}
else return len1 < len2;
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
//freopen("input.txt", "rt", stdin);
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;
}
'Coding Test > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค #1543. ๋ฌธ์ ๊ฒ์ (0) | 2022.02.19 |
---|---|
[BOJ] ๋ฐฑ์ค #1920. ์ ์ฐพ๊ธฐ (C++) (0) | 2022.02.18 |
[BOJ] ๋ฐฑ์ค #1026. ๋ณด๋ฌผ (C++) (0) | 2022.02.16 |
[BOJ] ๋ฐฑ์ค #1309. ๋๋ฌผ์ (C++) (0) | 2022.02.13 |
[BOJ] ๋ฐฑ์ค #2210. ์ซ์ํ ์ ํ (C++) (0) | 2022.02.13 |