728x90
반응형
https://www.acmicpc.net/problem/1431
1. Logic
각 조건에 따라 compare 함수를 커스텀해서 정렬하면 된다.
2. Code
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> input;
bool cmp(string a, string b) {
//1번 조건
if(a.length() != b.length()) return a.length() < b.length();
//2번 조건
int aNum = 0;
int bNum = 0;
for(int i = 0; i < a.length(); i++) {
if(isdigit(a[i])) aNum += (a[i] - '0');
}
for(int i = 0; i < b.length(); i++){
if(isdigit(b[i])) bNum += (b[i] - '0');
}
if(aNum != bNum) return aNum < bNum;
//3번 조건
return a < b;
}
int main()
{
int n;
cin >> n;
for(int i = 0; i < n; i++) {
string str;
cin >> str;
input.push_back(str);
}
sort(input.begin(), input.end(), cmp);
for(int i = 0; i < input.size(); i++) {
cout << input[i] << "\n";
}
}
알고리즘 Solve 후 제가 생각한 Logic을 기록하는 개인 공부 블로그입니다.
내용 중 최적화가 가능한 부분등은 언제든지 댓글로 틀린 부분 및 피드백 주시면 공부 및 반영하겠습니다🧐
728x90
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
[백준/Baekjoon] 2056 작업 C++ :: Dynamic Programming (1) | 2023.11.03 |
---|---|
[백준/Baekjoon] 16987 계란으로 계란치기 C++ :: Brute force & Back tracking (0) | 2023.11.02 |
[백준/Baekjoon] 11652 카드 C++ :: Data structure (0) | 2023.11.01 |
[백준/Baekjoon] 14503 로봇 청소기 C++ :: DFS & Graph & Implementation (0) | 2023.10.31 |
[백준/Baekjoon] 15988 1, 2, 3 더하기 3 C++ :: Dynamic Programming (0) | 2023.10.31 |