프로그래머스 [PCCE 기출문제] 10번 / 데이터분석

2025. 11. 4. 15:56·Coding Test/Sort

문제

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

using namespace std;

vector<vector<int>> solution(vector<vector<int>> data, string ext, int val_ext, string sort_by)
{
    vector<vector<int>> answer;

    int index_ext = 0; 
    int index_sort_by = 0; 
    
    vector<string> m_vecFindIndex = { "code", "date", "maximum", "remain" };

    auto iter_ext = find(m_vecFindIndex.begin(), m_vecFindIndex.end(), ext);
    auto iter_sort_by = find(m_vecFindIndex.begin(), m_vecFindIndex.end(), sort_by);

    if (iter_ext != m_vecFindIndex.end())
    {   
        index_ext = static_cast<int>(distance(m_vecFindIndex.begin(), iter_ext));
    }
   
    if (iter_sort_by != m_vecFindIndex.end())
    {   
        index_sort_by = static_cast<int>(distance(m_vecFindIndex.begin(), iter_sort_by));
    }
   
    
    for(auto& iter : data)
    {
        if(iter[index_ext] < val_ext)
        {
            answer.push_back(iter);
        }
    }
    
    
    sort(answer.begin(), answer.end(), [&](vector<int> _a, vector<int> _b)
         {
             return _a[index_sort_by] <_b[index_sort_by];
         });
    
    
    return answer;
    
}

 

 

문제 풀이 접근 순서 

 

1. 해당 문제에서 어떠한 기준값을 기준으로 비교를 한 뒤 또 다른 기준값을 이용하여 오름차순으로 정리하라 하여 sort 알고리즘

    을 생각함 

 

2. ext 와 sort_by 값이 각각 경우의 수가 다 합쳤을 때 16가지 이므로 if문으로 하기에는 코드가 너무 길어질 수 있으므로 

    vector의 find와 distance 함수를 활용하여 index를 구해 pred 문을 작성하기로 생각 

 

3. 해당 값은 sort 알고리즘의 람다 함수을 적용시켜 각각의 경우의 마다의 정렬이 되도록 구현함.

'Coding Test > Sort' 카테고리의 다른 글

프로그래머스 [Level2] 전화번호 목록 [Sort, Hash]  (0) 2025.11.09
프로그래머스 [Level1] 달리기 경주  (0) 2025.11.04
백준 1427번 소트인사이드  (0) 2025.11.04
백준 1181번 단어 정렬 ( Sort 알고리즘 활용)  (0) 2025.11.03
'Coding Test/Sort' 카테고리의 다른 글
  • 프로그래머스 [Level2] 전화번호 목록 [Sort, Hash]
  • 프로그래머스 [Level1] 달리기 경주
  • 백준 1427번 소트인사이드
  • 백준 1181번 단어 정렬 ( Sort 알고리즘 활용)
seonhwan2547
seonhwan2547
seonhwan2547 님의 블로그 입니다.
  • seonhwan2547
    seonhwan2547 님의 블로그
    seonhwan2547
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Unreal Project (17)
        • Khazan 모작 프로젝트 (2)
        • Unreal Study (10)
        • Blueprint (5)
      • Directx11 Project (11)
        • Thymesia 팀 프로젝트 (8)
        • Kaku Ancient Seal 개인 프로젝트 (2)
        • Thymesia Animation Tool 개발 (0)
      • Algorithm (6)
        • Binary_Search (2)
        • Greedy (1)
        • Dynamic Programming (1)
        • A-star (1)
      • Coding Test (31)
        • Brutal Force (2)
        • Sort (5)
        • DFS (3)
        • Binary_Search (4)
        • BFS (6)
        • Hash (2)
        • Dynamic Programming (6)
        • Greedy (1)
        • BackTracking (1)
        • Binary_Tree (1)
      • STL Container (1)
        • unorded_set (0)
        • priority_queue (1)
      • C++ 공부 및 몰랐던점 (8)
        • Smart pointer (1)
      • Visual Studio 설정관련 공부 (1)
      • Console Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 블로그 소개
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Unreal Engine
    hash
    Game Programming
    CodingTest
    GameProgramming
    Unreal
    blueprint
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
seonhwan2547
프로그래머스 [PCCE 기출문제] 10번 / 데이터분석