728x90
๐๋ฌธ์ ๋ณด๋ฌ๊ฐ๊ธฐ
๐จ๐ปํ์ด ๊ณผ์
๋ณ ๊ฑฐ ์๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋๋ฐ, ์๊ฐ๋ณด๋ค ์ค๋ ๊ฑธ๋ ค ๋ฒ๋ ธ๋ค์... ์ฃผ์ด์ง ์ซ์๋ฅผ ๋ฌธ์์ด์ ๋ด์, 3๋ฐฐ๋งํผ ํค์ด ํ ๋น๊ตํด์ฃผ์์ต๋๋ค. ์๋ฅผ ๋ค์ด,
// ํ ์๋ฆฌ ์ซ์์ผ ๊ฒฝ์ฐ
"5" -> "555"
// ๋ ์๋ฆฌ ์ซ์์ผ ๊ฒฝ์ฐ
"45" -> "454545"
// ...
3๋ฐฐ๋ก ํด์ฃผ๋ ์ด์ ๋ ์ต์ ์๋ฆฟ์๊ฐ ํ ์๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ด์ฃ . 4๋ฐฐ๋ฅผ ํด์ฃผ๊ฒ ๋๋ฉด, ์ ๋ ฅ ๋ฐ์ดํฐ ๋ฒ์ ์ต๋๊ฐ์ธ 1000์ ๋์ด๊ฐ๊ฒ ๋ฉ๋๋ค. ์๋ฌดํผ, ๋ณํ์ ์๋ฃํ์ผ๋, ๋ค์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ ๋ ฌํด์ฃผ๋ฉด ๋ฉ๋๋ค.
- ๋งจ ์ ์๋ฆฌ๋ถํฐ ๋น๊ตํด๊ฐ๋ฉฐ, ํฐ ์๊ฐ ์์ผ๋ก ๊ฐ๋๋ก ํ๋ค.
- ํฐ ์๊ฐ ์๋ค๋ฉด, ๋ ๋ณํ๋ ์์ ๊ธธ์ด๋ฅผ ํ์ธํ๋ค. ๋ ๊ธธ์ด๊ฐ ๊ฐ๋ค๋ฉด ๋๊ฐ์ ์์ด๋ฏ๋ก, false ๋ฆฌํด
- ๊ทธ๊ฒ ์๋๋ผ๋ฉด, ๊ธธ์ด๊ฐ ์์ ์ชฝ์ด ์์ผ๋ก ๊ฐ๋๋ก ํ๋ค.
- ํฉ์น ๋ฌธ์์ด๋ค์ด ๋ชจ๋ '0'์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค๋ฉด, "0"์ ๋ฆฌํดํ๋ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค.
โ๏ธ์์ค ์ฝ๋ ๋ฐ ๊ฒฐ๊ณผ
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
const int MULTIPLY = 3;
class Data {
public:
Data() { }
Data(int num) {
originNumber = to_string(num);
for (int i = 0; i < MULTIPLY; i++)
convertedNumber += originNumber;
}
bool operator<(const Data& other) {
for (int i = 0; i < convertedNumber.length() and i < other.convertedNumber.length(); i++) {
if (convertedNumber[i] == other.convertedNumber[i])
continue;
return convertedNumber[i] > other.convertedNumber[i];
}
if (convertedNumber.length() == other.convertedNumber.length())
return false;
return convertedNumber.length() < other.convertedNumber.length();
}
public:
string originNumber;
string convertedNumber;
};
string solution(vector<int> numbers) {
vector<Data> myData;
bool isZero = true;
for (const auto element : numbers) {
if (element != 0 and isZero) {
myData.emplace_back(Data(element));
isZero = false;
continue;
}
myData.emplace_back(Data(element));
}
if (isZero)
return "0";
sort(myData.begin(), myData.end());
string answer = "";
for (const auto element : myData)
answer += element.originNumber;
return answer;
}
728x90
๋ฐ์ํ
'๐คAlgorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] Lv2. ํฐ ์ ๋ง๋ค๊ธฐ | C++ (0) | 2023.06.27 |
---|---|
[Programmers] Lv2. ํ๋ฐฐ์์ | C++ (0) | 2023.06.26 |
[Programmers] Lv2. ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ | C++ (0) | 2023.06.25 |
[Programmers] Lv2. [1์ฐจ] ํ๋ ์ฆ4๋ธ๋ก | C++ (0) | 2023.06.24 |
[Programmers] Lv2. [3์ฐจ] ํ์ผ๋ช ์ ๋ ฌ | C++ (0) | 2023.06.24 |