-
[BaekJoon] 1431๋ฒ : ์๋ฆฌ์ผ ๋ฒํธSW Test/BaekJoon 2021. 4. 18. 16:53๋ฐ์ํ
- ์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค.
๋ฌธ์
์์
ํ์ด
- sort ํจ์๋ฅผ ๊ตฌํํ๋ ๋๋ ๋ฌธ์ ๋ก ์ํ๋ ์กฐ๊ฑด์ ๋ง๊ฒ ๊ตฌํํฉ๋๋ค.
- sort ํจ์์์ strict weak ordering์ ๋ง๊ฒ ํ์ง ์์ผ๋ฉด ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ ์๋ ์์ต๋๋ค.
#include<iostream> #include<string> #include<algorithm> #include<cctype> #include<vector> using namespace std; bool cmp(string& s1, string &s2){ if(s1.size()<s2.size()){ return true; }else if(s1.size() == s2.size()){ int sum1 = 0, sum2 = 0; for(int i=0;i<s1.size();i++){ if(isdigit(s1[i])){ sum1+=(s1[i]-'0'); } } for(int i=0;i<s2.size();i++){ if(isdigit(s2[i])){ sum2+=(s2[i]-'0'); } } if(sum1<sum2){ return true; }else if(sum1 == sum2){ if(s1<s2){ return true; }else{ return false; } }else{ return false; } }else{ return false; } } int main(){ int num; cin>>num; vector<string> v; for(int i=0;i<num;i++){ string s; cin>>s; v.push_back(s); } sort(v.begin(), v.end(), cmp); for(int i=0;i<num;i++){ cout<<v[i]<<"\n"; } }
- ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด๋ ์์ ํ ๋ถ๋ถ ์์ผ๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.
๋ฐ์ํ'SW Test > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BaekJoon] 9095๋ฒ : 1, 2, 3 ๋ํ๊ธฐ (0) 2021.04.18 [BaekJoon] 1463๋ฒ : 1๋ก ๋ง๋ค๊ธฐ (0) 2021.04.18 [BaekJoon] 1406๋ฒ : ์๋ํฐ (0) 2021.04.15 [BaekJoon] 15649๋ฒ : N๊ณผ M (0) 2020.12.14 [BaekJoon] 1436๋ฒ : ์ํ๊ฐ๋ ์ (0) 2020.12.13