티스토리 뷰
문제 설명
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.
예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.
0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요.
제한 사항
- numbers의 길이는 1 이상 100,000 이하입니다.
- numbers의 원소는 0 이상 1,000 이하입니다.
- 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다.
입출력 예
numbersreturn
[6, 10, 2] | 6210 |
[3, 30, 34, 5, 9] | 9534330 |
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
|
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(string &a, string &b) {
return a + b < b + a ? true : false;
}
string solution(vector<int> numbers) {
string answer = "";
vector<string> v;
for (int i = 0; i < numbers.size(); i++) {
v.push_back(to_string(numbers.at(i)));
}
sort(v.begin(), v.end(), cmp);
while (!v.empty()) {
answer += v.back();
v.pop_back();
}
if (answer[0] == '0')
return "0";
return answer;
}
|
'Dev.CodingTest > Programmers' 카테고리의 다른 글
[프로그래머스 c++] 조이스틱 (1) | 2019.09.02 |
---|---|
[프로그래머스 c++] H-index (0) | 2019.08.31 |
[프로그래머스 c++ ] 이중우선순위큐 (0) | 2019.08.29 |
[프로그래머스 c++] 라면공장 (1) | 2019.08.29 |
[프로그래머스 c++] 더 맵게 (0) | 2019.08.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- algorithm
- Xcode
- 코딩테스트
- ec2
- 구슬탈출
- BFS
- 시뮬레이션
- c++
- count
- 알고리즘
- aws
- 프로그래머스
- isempty
- 서머코딩
- Swift
- 삼성역량테스트
- 컬렉션
- 스위프트
- 깊이우선탐색
- 자료구조
- 백준
- datastructure
- Collection
- Programmers
- SummerCoding
- ios
- dp
- 이진트리
- 호제법
- dfs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함