๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm๐Ÿฐ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ํฐ ์ˆ˜ STL(sort)

by Jouureee 2022. 3. 25.

๋ฌธ์ œ :

https://programmers.co.kr/learn/courses/30/lessons/42746

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฐ€์žฅ ํฐ ์ˆ˜

0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ •์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด ์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ด์ค‘ ๊ฐ€์žฅ ํฐ

programmers.co.kr

 

๋ถ„์„ : 

์šฐ์„  ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ๊ฐ€ ํฐ ์›์†Œ ๋จผ์ € ์ •๋ ฌ ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค !

ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ ์›์†Œ๊ฐ€ ๊ฐ™์€ ์›์†Œ๋“ค์ด๋‹ค.  

์˜ˆ๋ฅผ ๋“ค์–ด [8, 3, 30, 34, 36] ๊ฐ€ ์žˆ์„๋•Œ ๊ธฐ๋ณธ sortํ•จ์ˆ˜๋กœ ์ •๋ ฌํ•˜๋ฉด [8, 36, 32, 30, 3] ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค. 

ํ•˜์ง€๋งŒ 32303๋ณด๋‹ค 33230์ด ๋” ํฐ ์ˆ˜ ์ด๋ฉฐ ์ด๋ฅผ ๊ตฌ๋ณ„ํ•ด์ค„ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ–ˆ๋‹ค.

comp ํ•จ์ˆ˜์— length๊ฐ€ ๋” ํฌ๊ณ , while๋ฌธ ์จ์„œ index ๋Š˜๋ฆฌ๊ณ  ... ํ•˜๋‹ค๋ณด๋‹ˆ ์ฝ”๋“œ๊ฐ€ ์ง€์—ฝ์ ์œผ๋กœ ๋ณ€ํ•ด์„œ ๋ฌธ์ œ์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์™„์ „ ๋ช…์พŒํ•œ ํ•ด๋‹ต์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค ! ์ฐธ๊ณ  : https://mungto.tistory.com/22 

๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๋Œ€๋กœ ๋น„๊ตํ•˜๋Š” ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด๋ผ๋ฆฌ + ์—ฐ์‚ฐ์„ ํ•œ๋’ค ํฐ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๊ฒŒ ํ•œ๋‹ค. ์™„์ „ ๊ตฟ ๋ฐฉ๋ฒ• ..!

 

 c++ ์ฝ”๋“œ :

#include <string>
#include <vector>
#include <algorithm>


using namespace std;
bool comp(string s1, string s2){
	return s1 + s2 > s2 + s1;
}

string solution(vector<int> numbers) {
    string answer = "";
    vector<string> num;
    
    for(int i = 0; i < numbers.size(); i++){
        num.push_back(to_string(numbers[i]));
    }
    sort(num.begin(), num.end(), comp);
    if (num.at(0) == "0") {
        return "0";
    }
    for(int i = 0; i < numbers.size(); i++){
        answer += num[i];
    }
    
    return answer;
}

 

๊ฒฐ๊ณผ :

๋Œ“๊ธ€