https://www.acmicpc.net/problem/28114
๋ฌธ์
ํ๋ ๋ชจ๋น์ค๋ ๋ชจ๋น๋ฆฌํฐ SW ํด์ปคํค, ์๊ณ ๋ฆฌ์ฆ ๊ฒฝ์ง๋ํ, ์ฑ์ฉ ์ฐ๊ณํ SW ์์นด๋ฐ๋ฏธ ๋ฑ ๋ค์ํ SW ์ธ์ฌ ๋ฐ๊ตด ํ๋ก๊ทธ๋จ์ ์งํํ๊ณ ์๋ค. ์ง๋ 2์์ ๊ฐ์ต๋ ๋ชจ๋น๋ฆฌํฐ SW ํด์ปคํค์ ๊ตญ๋ด 14๊ฐ ๋ํ์ ์ํํธ์จ์ด ๋์๋ฆฌ 20๊ฐ ํ, 70์ฌ ๋ช ์ด ์ฐธ์ฌํด ๋ชจ๋น๋ฆฌํฐ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ค๋ ฅ์ ๊ฒจ๋ค๋ค.
์ญ์ค๋ํ๊ต ์ปดํจํฐํ๋ถ ๋ฌธ์ ํด๊ฒฐ ์๋ชจ์ SCCC ๋ถ์๋ค์ ๋งค๋ ๋ชจ๋น๋ฆฌํฐ SW ํด์ปคํค, SCON, ICPC์ ๊ฐ์ ํ ๋ํ์์ ์ฌ์ฉํ ํ๋ช ์ ์ ํ๊ธฐ ์ํด ๋ง์ ๊ณ ๋ฏผ์ ํ๋ค. ์กธ์ ์ ํ ํ๊ธฐ ๋จ๊ฒจ๋ ์ฑ์๋ ๋ ์ด์ ๋ถ์๋ค์ด ํ๋ช ์ผ๋ก ๊ณ ํต์ ๋ฐ์ง ์๋๋ก ๊ฐ์ด๋๋ผ์ธ์ ๋ง๋ค์๋ค.
์ฑ์์ ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋ฅด๋ฉด ํ ์ด๋ฆ์ ์ง๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
- ์ธ ์ฐธ๊ฐ์์ ์ ํ ์ฐ๋๋ฅผ 100์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ ์ด์ด ๋ถ์ธ ๋ฌธ์์ด
- ์ธ ์ฐธ๊ฐ์ ์ค ์ฑ์จ๋ฅผ ์๋ฌธ์ผ๋ก ํ๊ธฐํ์ ๋์ ์ฒซ ๊ธ์๋ฅผ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์์ ํด๊ฒฐํ ๋ฌธ์ ๊ฐ ๋ง์ ์ฌ๋๋ถํฐ ์ฐจ๋ก๋๋ก ๋์ดํ ๋ฌธ์์ด
์๋ฅผ ๋ค์ด 600๋ฌธ์ ๋ฅผ ํด๊ฒฐํ 18ํ๋ฒ ์(AHN)์จ, 2000๋ฌธ์ ๋ฅผ ํด๊ฒฐํ 19ํ๋ฒ ์ด(LEE)์จ, 6000๋ฌธ์ ๋ฅผ ํด๊ฒฐํ 20ํ๋ฒ ์ค(OH)์จ๋ก ๊ตฌ์ฑ๋ ํ์ ์๊ฐํด ๋ณด์. ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ช ์ ๋ง๋ค๋ฉด 181920์ด ๋๊ณ , ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ช ์ ๋ง๋ค๋ฉด OLA๊ฐ ๋๋ค.
2000๋ฌธ์ ๋ฅผ ํด๊ฒฐํ 19ํ๋ฒ ์ด(LEE)์จ, 9000๋ฌธ์ ๋ฅผ 21ํ๋ฒ ๋(NAH)์จ, 1000๋ฌธ์ ๋ฅผ ํด๊ฒฐํ 22ํ๋ฒ ๋ฐ(PARK)์จ๋ก ๊ตฌ์ฑ๋ ํ์ ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ช ์ ๋ง๋ค๋ฉด 192122๊ฐ ๋๊ณ , ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ช ์ ๋ง๋ค๋ฉด NLP๊ฐ ๋๋ค.
์ธ ํ์์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์์ ํด๊ฒฐํ ๋ฌธ์ ์ ๊ฐ์, ์ ํ ์ฐ๋, ๊ทธ๋ฆฌ๊ณ ์ฑ์จ๊ฐ ์ฃผ์ด์ง๋ฉด ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ๊ณผ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ๋ง๋ค์ด์ง๋ ํ๋ช ์ ์ฐจ๋ก๋๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ฒซ ๋ฒ์งธ ํ์์ด ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์์ ํด๊ฒฐํ ๋ฌธ์ ์ ๊ฐ์ ๐1 , ์ ํ ์ฐ๋ ๐1 , ์ฑ์จ ๐1 ์ด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค๊ณผ ์ ์งธ ์ค์๋ ๋ ๋ฒ์งธ ํ์์ ์ ๋ณด ๐2,๐2,๐2 ์ ์ธ ๋ฒ์งธ ํ์์ ์ ๋ณด ๐3,๐3,๐3 ์ด ์ฒซ์งธ ์ค๊ณผ ๊ฐ์ ํ์์ผ๋ก ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ๋ง๋ ํ๋ช ์ ์ถ๋ ฅํ๋ค.
๋์งธ ์ค์ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ๋ง๋ ํ๋ช ์ ์ถ๋ ฅํ๋ค.
ํ์ด
์ ๋ ฅ ๋ฐ์ ๋ ์ ํ ์ฐ๋๋ ๋ฐ๋ก ๋ฐ์๋ ๋๋ค.
ํ์ง๋ง ๋ฌธ์ ํด๊ฒฐ ์์ ์ฑ(์ด๋ฆ)์ ํจ๊ป ํ์ฉํด์ผํ๋ฏ๋ก pair์ ์ด์ฉํด์ ํ๋ฒ์ ์ ๋ ฅ๋ฐ์ ํ ๋ฐฐ์ด์ ์ ์ฅํด์ฃผ์
vector<int> year(NUM);
vector<ci> solveName(NUM);
for(int i=0; i<NUM; i++) {
int solve; string name;
cin >> solve >> year[i] >> name;
solveName[i] = {solve, name};
}
์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ํ ์ด๋ฆ ์ง๊ธฐ
string solution1(vector<int>&year) {
vector<int> v;
for(int i : year) {
v.push_back(i%100);
}
sort(v.begin(), v.end());
string s = "";
for(int i : v) {
s += to_string(i);
}
return s;
}
๋๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฆ์ง๊ธฐ
bool cmp(ci a, ci b) {
return a.first > b.first;
}
string solution2(vector<ci>&solveName) {
sort(solveName.begin(), solveName.end(), cmp);
string s = "";
for(ci i : solveName) {
s += i.second[0];
}
return s;
}
์ ๋ต์ฝ๋
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int NUM = 3;
typedef pair<int, string> ci;
string solution1(vector<int>&year) {
vector<int> v;
for(int i : year) {
v.push_back(i%100);
}
sort(v.begin(), v.end());
string s = "";
for(int i : v) {
s += to_string(i);
}
return s;
}
bool cmp(ci a, ci b) {
return a.first > b.first;
}
string solution2(vector<ci>&solveName) {
sort(solveName.begin(), solveName.end(), cmp);
string s = "";
for(ci i : solveName) {
s += i.second[0];
}
return s;
}
int main() {
vector<int> year(NUM);
vector<ci> solveName(NUM);
for(int i=0; i<NUM; i++) {
int solve; string name;
cin >> solve >> year[i] >> name;
solveName[i] = {solve, name};
}
cout << solution1(year) << "\n" << solution2(solveName);
return 0;
}
'๐๏ธ ICPC Sinchon > Sorting' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ S1][C++] ๋ฐฑ์ค 1946๋ฒ : ์ ์ ์ฌ์ (0) | 2022.09.06 |
---|---|
[BOJ S4][C++] ๋ฐฑ์ค 1026๋ฒ : ๋ณด๋ฌผ (0) | 2022.09.06 |
[BOJ S3][C++] ๋ฐฑ์ค 1431๋ฒ : ์๋ฆฌ์ผ ๋ฒํธ (0) | 2022.09.06 |
[BOJ S4][C++] ๋ฐฑ์ค 1758๋ฒ : ์๋ฐ์ ๊ฐํธ (0) | 2022.09.06 |
[BOJ S5][C++] 11651๋ฒ: ์ขํ ์ ๋ ฌํ๊ธฐ 2 (0) | 2022.09.06 |