[Programmers]#Level2_가장 큰 수, sort(), 람다 함수

2023. 11. 23. 23:25· 문제 풀이/Programmers 문제 풀이
목차
  1.  
  2. [Programmers 알고리즘, C++]#Level2_가장 큰 수

 

[Programmers 알고리즘, C++]#Level2_가장 큰 수

 

Programmers 알고리즘 문제 풀이, Level2_가장 큰 수

C++의 algorithm 라이브러리에서 제공하는 sort 함수와 람다 표현식을 활용하는 문제

 


 

Overview

 

  1. 문제
  2. 풀이
  3. 코드

 

#1, 문제

 

#2. 풀이

1. sort()

 

[Basic C++] #32-3_STL 정렬 알고리즘

[Basic C++] #32-3_STL 정렬 알고리즘 C++ 개발에서 표준 라이브러리(STL)에 대해 알아보겠습니다. "전문가를 위한 C"의 15 항목, "C++ 표준 라이브러리 살펴보기"에 해당하는 내용입니다. Overview 개념 partiti

webddevys.tistory.com

 

  • [정의] : C++의 algorithm 헤더에서 제공하는 sort() 알고리즘은 퀵 정렬을 기준으로 원본 컨테이너의 정렬을 수행하는 알고리즘입니다. sort() 알고리즘은 별도의 Predicate 함수가 없을 시, 오름차순(less) 정렬을 수행합니다.

 

2. 람다 함수

 

[Basic C++] #44_람다 표현식, 기본

[Basic C++] #44_람다 표현식, 기본 STL 알고리즘 중 "람다 표현식"에 대해 알아보겠습니다. "전문가를 위한 C"의 17 항목, "STL 알고리즘 마스터하기"에 해당하는 내용입니다. Overview 개념 syntax 캡처 블록

webddevys.tistory.com

 

 

[Basic C++] #45_람다 표현식 활용, 제네릭 람다 표현식, 람다 캡처 표현식, 리턴 타입으로서 람다 표

[Basic C++] #45_람다 표현식 활용, 제네릭 람다 표현식, 람다 캡처 표현식, 리턴 타입으로서 람다 표현식 STL 알고리즘 중 "람다 표현식"에 대해 알아보겠습니다. "전문가를 위한 C"의 17 항목, "STL 알고

webddevys.tistory.com

 

 

[Basic C++] #46_람다 표현식과 STL 알고리즘

[Basic C++] #46_람다 표현식과 STL 알고리즘 STL 알고리즘 중 "람다 표현식"에 대해 알아보겠습니다. "전문가를 위한 C"의 17 항목, "STL 알고리즘 마스터하기"에 해당하는 내용입니다. 람다 표현식의 활

webddevys.tistory.com

 

[기술 질문]#17_Lambda

[기술 질문] #17_Lambda C++의 Lambda에 대해 알아보겠습니다. Overview 개념 캡처 블록 람다의 활용 LinQ [Basic C++] #44_람다 표현식, 기본 [Basic C++] #44_람다 표현식, 기본 STL 알고리즘 중 "람다 표현식"에 대

webddevys.tistory.com

 

  • [개념] : C++의 람다 표현식은 익명의 함수 객체를 인라인으로 정의할 수 있도록 해주는 기능입니다.
  • [특징] : 일반적으로, sort() 알고리즘과 같이 STL 알고리즘 중 별도의 사용자 정의 Predicate 함수를 인자로 전달받는 함수들에서 주로 활용됩니다.

 

3. sort() + 람다

  1. 먼저, 주어진 vector 컨테이너의 각 항목들을 stringstream 객체를 활용하여 문자열로 변환합니다.
  2. 다음으로, sort() 알고리즘과 람다 표현식을 활용해 서로 앞 뒤로 이어붙여 더 큰 수를 만들어내는 기준으로 정렬해 줍니다.

 

#3. 풀이
#include <string>
#include <vector>
#include <sstream>
#include <algorithm>

using namespace std;

string solution(vector<int> numbers) {
    string answer = "";
    
    // #1. 문자열로 변환
    vector<string> v;
    for(int i=0; i<(int)numbers.size(); i++)
    {
        stringstream ss;
        ss << numbers[i];
        
        v.push_back(ss.str());
    }
    
    // #2. 정렬, 자릿수 별로 차례대로 비교하고, 특정 자릿수가 더 큰 문자열을 높은 우선순위로 정렬
    sort(begin(v), end(v), [](const string& a, const string& b)
         {
            return a+b > b+a;
         });
    
    // #3. 결과 값 저장
    for(int i=0; i<(int)v.size(); i++)
    {      
        answer += v[i];
    }
    
    if(answer[0] == '0')
        return "0";
    
    return answer;
}

 

 

 

저작자표시 (새창열림)

'문제 풀이 > Programmers 문제 풀이' 카테고리의 다른 글

[Programmers_C++]#Level2_예상 대진표  (0) 2023.12.13
[Programmers_C++]#Level2_구명보트, 투 포인터 알고리즘  (0) 2023.12.13
[Programmers]#Level1_배열의 원소 삭제하기, remove_if(), find(), erase()  (2) 2023.11.23
[Programmers]#Level1_체육복, map, prev(), next()  (0) 2023.11.23
[Programmers]#Level2_모음 사전, 완전 탐색, DFS(깊이 우선 탐색)  (1) 2023.11.23
  1.  
  2. [Programmers 알고리즘, C++]#Level2_가장 큰 수
'문제 풀이/Programmers 문제 풀이' 카테고리의 다른 글
  • [Programmers_C++]#Level2_예상 대진표
  • [Programmers_C++]#Level2_구명보트, 투 포인터 알고리즘
  • [Programmers]#Level1_배열의 원소 삭제하기, remove_if(), find(), erase()
  • [Programmers]#Level1_체육복, map, prev(), next()
Hardii2
Hardii2
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

  • 정렬
  • BFS
  • 개발
  • set
  • Unreal Blueprint
  • 최단 경로
  • BOJ
  • 알고리즘
  • 그래프
  • stl
  • 디자인 패턴
  • C++
  • 기술 질문
  • DP
  • dfs
  • unreal
  • 우선순위 큐
  • 트리
  • Effective C++
  • programmers

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[Programmers]#Level2_가장 큰 수, sort(), 람다 함수
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.