본문 바로가기

Algorithm/Sorting

(C++) - 프로그래머스(연습문제) : 문자열 내 마음대로 정렬하기

반응형

programmers.co.kr/learn/courses/30/lessons/12915

 

코딩테스트 연습 - 문자열 내 마음대로 정렬하기

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱

programmers.co.kr

 

정렬 구현 문제였습니다.

 

풀이방법

 1. 매 solution함수 호출마다 n을 갱신해줍니다.

 2. cmp함수를 이용해 stl sort함수의 세 번째 인자를 cmp함수 내에 정해진 기준으로 정렬여부를 판별하도록 합니다.

사전순 (오름차순)으로 정렬되어야 함을 유의하며 작성합니다.

 

Code

#include <bits/stdc++.h>
using namespace std;

int idx;
bool cmp(string &a, string &b){
    if(a[idx]!=b[idx]) return a[idx] < b[idx];
    return a < b;
}

vector<string> solution(vector<string> strings, int n) {
    idx = n;
    sort(strings.begin(),strings.end(),cmp);
    return strings;
}