반응형
정렬 문제였습니다.
풀이방법
stl의 sort함수는 정렬기준을 커스터마이징한 함수를 넣어 원하는 대로 정렬할 수 있습니다.
Code
#include <bits/stdc++.h>
using namespace std;
int n;
vector <string> serial;
bool cmp(string a, string b){
if(a.size() == b.size()){
int sumA = 0,sumB = 0;
for(int i = 0; i < a.size(); i++){
if('1'<=a[i]&&a[i]<='9') sumA += a[i] - '0';
if('1'<=b[i]&&b[i]<='9') sumB += b[i] - '0';
}
if(sumA == sumB) return a < b;
return sumA < sumB;
}
return a.size() < b.size();
}
int main(){
cin >> n;
while(n--){
string s;
cin >> s;
serial.push_back(s);
}
sort(serial.begin(),serial.end(),cmp);
for(auto s:serial) cout << s << '\n';
}
'Algorithm > Sorting' 카테고리의 다른 글
(C++) - 프로그래머스(2018 KAKAO BLIND RECRUITMENT[3차]) : 파일명 정렬 (0) | 2021.05.14 |
---|---|
(C++) - 백준(BOJ) 11497번 : 통나무 건너뛰기 (0) | 2021.05.01 |
(C++) - 백준(BOJ) 10825번 : 국영수 답 (0) | 2021.05.01 |
(C++) - 백준(BOJ) 1744번 : 수 묶기 (0) | 2021.04.26 |
(C++) - 백준(BOJ) 1926번 : 수 정렬하기 5 (0) | 2021.03.14 |