์ฝ๋ฉํ ์คํธ ์ฐ์ต ๊ณ ๋์ Kit ์ ๋ ฌ ํํธ 2๋ฒ - ๊ฐ์ฅ ํฐ ์
[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/42746
[ํด๊ฒฐ๋ฒ]
๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋ ์๊ฐ...
"์กฐํฉํจ์๋ก ์ซ์์กฐํฉ์ ๋ฝ์ ์ ์์๊ฑฐ ๊ฐ์๋ฐ ์ซ์๋ฅผ ์ด๋ป๊ฒ ํฉ์น์ง?" ์๋๋ฐ
return ์ด string ์ธ๊ฑฐ ๋ณด๊ณ ๊ฑ ๋ฌธ์์ด๋ก ํฉ์น๋ฉด ๋๋๊ตฌ๋~๋ฅผ ์์๋ค.
(์ค๋ต)
1) ์กฐํฉ ๋๋ฆฌ๊ฒ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด๋๊ธฐ
2) ์กฐํฉ์ผ๋ก ์ซ์์กฐํฉ ๋ฝ๊ธฐ -----------------------> ์๊ฐ์ด๊ณผ
3) ๋ฐ๋ณต๋ฌธ ๋๋ฆฌ๋ฉด์ ํ๋๋ก ํฉ์ณ์ int๋ก ๊ฐ์ ํ๋ฒํ
4) answer ๋ฒกํฐ์ ์ถ๊ฐ
5) ์ ๋ ฌํด์ ๋ง์ง๋ง ์์ ๋ฝ๊ธฐ
(์ ๋ต)
๋ฌธ์์ด ๋น๊ตํด์ ์ฒ์๋ถํฐ ํฐ ์กฐํฉ์ผ๋ก ์ ๋ ฌํ๊ธฐ.
์ฐธ๊ณ ๋ก ํ ์คํธ ์ผ์ด์ค 11๋ฒ์ด [0,0,0,0] ์ด๋ผ์ ๊ทธ๋ฅ 0์ ๋ฆฌํดํ๋ฉด ์๋๋ค!
[์์๋ ๊ฒ]
1. ์กฐํฉ์ฝ๋
do{
//์กฐํฉ์ผ๋ก ํ ์ผ
}while(next_permutation(v.begin(), v.end()));
next_permutation ์ ์๊ฐ๋ณต์ก๋๋ O(N) ์ด์ด์ ์ซ์๊ฐ ํฌ๋ฉด ๋ถ์ ํฉํ๋ค.
2. int to string ์ฝ๋
to_string(100);
3. ๋ฌธ์์ด๋ ๋น๊ต๊ฐ ๋๋ค๋ ๊ฒ. 3๋ฒ์งธ ์ธ์์ bool ํจ์๋ช ๋ฃ๊ธฐ.
bool compare(string &a, string &b){
return a + b > b + a;
}
sort(stringNumbers.begin(), stringNumbers.end(), compare);
[์ฝ๋]
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
bool compare(string &a, string &b){
return a + b > b + a;
}
string solution(vector<int> numbers) {
string answer;
vector<string> stringNumbers;
//๋ฌธ์์ด ๋น๊ต๋ฅผ ์ํด ์ซ์ ๋ฒกํฐ -> ๋ฌธ์์ด ๋ฒกํฐ์ ๋ฃ์ด๋๊ธฐ
for(int i = 0; i<numbers.size(); i++){
stringNumbers.push_back(to_string(numbers[i]));
}
//๋น๊ตํ๋ฉฐ ํฐ ์์๋๋ก ์ ๋ ฌ
sort(stringNumbers.begin(), stringNumbers.end(), compare);
//์ซ์ ํฉ์น๊ธฐ
for(int i = 0; i < stringNumbers.size(); i++){
answer += stringNumbers[i];
}
//๊ฐ์ด 0์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ผ์ด๋ฉด 0์ ๋ฆฌํดํ๊ธฐ
if(answer[0] == '0') return "0";
return answer;
}
2๋ ์ ์ด์ฌํ ํ ๋ ์ด๋ ๊ฒ ํ์์๋ค ~
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(int a, int b) {
string string_ab = to_string(a) + to_string(b);
string string_ba = to_string(b) + to_string(a);
return string_ab > string_ba;
}
string solution(vector<int> numbers) {
string answer = "";
sort(numbers.begin(), numbers.end(), compare);
for (auto& i : numbers) {
answer += to_string(i);
}
return (answer[0] == '0') ? "0" : answer;
}
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][Programmers][์์ ํ์] ์ต์์ง์ฌ๊ฐํ (0) | 2023.04.21 |
---|---|
[C++][Programmers][์ ๋ ฌ] H-Index (0) | 2023.04.20 |
[C++][Programmers][์ ๋ ฌ] K๋ฒ์งธ ์ (0) | 2023.04.19 |
[C++][Beakjoon][DFS/BFS] 13023๋ฒ ABCDE (0) | 2022.05.10 |
[C++][Beakjoon] 11724๋ฒ ์ฐ๊ฒฐ์์ (0) | 2022.05.10 |