https://school.programmers.co.kr/learn/courses/30/lessons/42746
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์ ์ค๋ช
0 ๋๋ ์์ ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์๋ฅผ ์ด์ด ๋ถ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์์๋ด ์ฃผ์ธ์.
์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์ ์๊ฐ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด์ค ๊ฐ์ฅ ํฐ ์๋ 6210์ ๋๋ค.
0 ๋๋ ์์ ์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- numbers์ ๊ธธ์ด๋ 1 ์ด์ 100,000 ์ดํ์ ๋๋ค.
- numbers์ ์์๋ 0 ์ด์ 1,000 ์ดํ์ ๋๋ค.
- ์ ๋ต์ด ๋๋ฌด ํด ์ ์์ผ๋ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์
numbers | return |
[6, 10, 2] | "6210" |
[3, 30, 34, 5, 9] | "9534330" |
๋ด ํด๋ต
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(vector<int> numbers) {
string answer = "";
int sum = 0;
vector<string> strings;
// ๋ฌธ์๋ก ๋ณํ
for(int i = 0; i < numbers.size(); ++i)
{
strings.push_back(to_string(numbers[i]));
sum += numbers[i];
}
// 0๋ง ์ฌ๋ฌ ๊ฐ ์๋ ๊ฒฝ์ฐ ์์ธ์ฒ๋ฆฌ
if(sum == 0)
return "0";
// ๋ ๋ฌธ์๋ฅผ ๋ํ์ ๋ ๋ ํฐ ์ชฝ์ ์ฐ์ ํ๊ฒ ์ ๋ ฌ ๊ธฐ์ค์ ์ค์ ํ๋ค.
// ex> 30 + 3 (303) < 3 + 30 (330)
auto comp_ = [](auto a, auto b)
{
return a + b > b + a;
};
// ์ ๋ ฌ
sort(strings.begin(), strings.end(), comp_);
// ์ ๋ต ๋ฌธ์์ด ๋ง๋ค๊ธฐ
for(int i = 0 ; i < strings.size() ; ++i)
answer += strings[i];
return answer;
}
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค / level.1 / ์ต์์ง์ฌ๊ฐํ(C++) (0) | 2023.03.27 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค / level.2 / H-Index(C++) (0) | 2023.03.24 |
ํ๋ก๊ทธ๋๋จธ์ค / level.1 / K๋ฒ์งธ์(C++) (2) | 2023.03.23 |
ํ๋ก๊ทธ๋๋จธ์ค C++ ๋ ํผ๋ฐ์ค ์ฌ์ดํธ (0) | 2023.03.21 |
ํ๋ก๊ทธ๋๋จธ์ค / level.2 / ์ฃผ์๊ฐ๊ฒฉ(C++) (0) | 2023.03.21 |