[C++] 백준(BOJ) - 1421번 시리얼 번호
2022. 2. 21. 17:04
풀이 코드
c++의 sort 메소드를 사용하여 간단히 풀 수 있다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int sum(string s){
int l = s.size();
int result=0;
for(int i=0;i<l;i++){
if((s[i] - '0')>=1 && (s[i]-'0')<=9)
result += (s[i]-'0');
}
return result;
}
bool cmp(string a, string b){
//1번조건
if(a.size() != b.size())
return a.size() < b.size();
else{
//2번조건
if(sum(a) != sum(b))
return sum(a)<sum(b);
//3번조건(알파벳순정렬)
else
return a<b;
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
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;
}
문제
https://www.acmicpc.net/problem/1431
'Algorithm' 카테고리의 다른 글
[C++ STL] std::vector 사용법과 동작방식 (0) | 2022.05.15 |
---|---|
[C++] 백준(BOJ) - 8892번 팰린드롬 (0) | 2022.02.28 |
[C++] 백준(BOJ) - 1448번 삼각형 만들기 (0) | 2022.02.28 |
[C++] 백준(BOJ) - 11055번 가장 큰 증가 부분 수열 (0) | 2022.02.27 |
[C++] 백준(BOJ) - 18870번 좌표 압축 (0) | 2022.02.21 |