Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Unreal Engine5
- DirectX11
- C++
- UE5
- 1563
- 줄 세우기
- directx
- Programmers
- DeferredRendering
- algorithm
- baekjoon
- 팰린드롬 만들기
- const
- 백준
- RootMotion
- 티스토리챌린지
- softeer
- 2294
- UnrealEngine4
- NRVO
- UnrealEngine5
- IFileDialog
- GeeksForGeeks
- 오블완
- 프로그래머스
- C
- RVO
- 언리얼엔진5
- Frustum
- winapi
Archives
- Today
- Total
Game Develop
[Algorithm] Programmers :: 가장 큰 수 본문
https://programmers.co.kr/learn/courses/30/lessons/42746?language=cpp
코딩테스트 연습 - 가장 큰 수
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰
programmers.co.kr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
bool cmp(string& p1, string& p2)
{
if (p1 + p2 > p2 + p1)
{
return true;
}
return false;
}
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])); // toString 해서 stringNumbers에 저장.
}
sort(stringNumbers.begin(), stringNumbers.end(), cmp);
for (int i = 0; i < stringNumbers.size(); i++)
{
answer += stringNumbers[i];
}
if(answer[0] == '0')
{
return "0";
}
return answer;
}
|
cs |
이 문제에서 알아가야 할 점은, comp함수를 적절하게 사용하는 법이다. 코드를 보면 알겠지만 저렇게 작성하고 sort를 실행하면, 알아서 정렬을 해준다. sort함수에 따로 비교함수를 작성해본 사람은 cmp함수를 보면 바로 알듯하다.
'Algorithm > Programmers' 카테고리의 다른 글
[Algorithm] Programmers :: 구명보트 (0) | 2022.05.27 |
---|---|
[Algorithm] Programmers :: 큰 수 만들기 (0) | 2022.05.26 |
[Algorithm] Programmers :: 체육복 (0) | 2022.05.24 |
[Algorithm] Programmers :: 여행경로 (0) | 2022.05.21 |
[Algorithm] Programmers :: 짝지어 제거하기 (0) | 2022.05.20 |