일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코드리뷰
- AWS
- mock
- JPA
- Paging
- 레벨2
- 자바
- 우아한세미나
- REDIS
- MSA
- Spring Batch
- 프리코스
- 세션
- 미션
- JUnit5
- 우아한테크코스
- 백준
- 스프링부트
- 우테코
- HTTP
- 서블릿
- 의존성
- Docker
- AOP
- Level2
- 트랜잭션
- yml
- 스프링 부트
- CircuitBreaker
- 프로그래머스
Archives
- Today
- Total
늘
C/C++ 2018 KAKAO BLIND RECRUITMENT [3차] 파일명 정렬 본문
728x90
처음 풀때는 단순히 정렬 기준 2개잡고 문자열 자르고, 소문자 만들고, int형변환 해주고, 등 귀찮은 정렬문제라고 생각했다. 그래서 백준 골드5? 실버? 사이쯤 된다고 생각해서 막힘없이 풀었는데 계속 테스트1, 2만 통과되고 나머지가 안되어서 결국 질문하기를 보았는데... 원인은 일반적 sort는 unstable해서 기존의 상태가 보장되지 않는다고 합니다. 그래서 stable_sort를 써야 한다고 한다...
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
vector<pair< string,pair<string, int>>> v;
bool compare(const pair<string, pair<string, int>>& a,const pair<string, pair<string, int>>& b){
if(a.second.first == b.second.first){
return a.second.second < b.second.second;
}
return a.second.first < b.second.first;
}
string head;
string number;
int check;
vector<string> solution(vector<string> files) {
vector<string> answer;
int cut=0;
for(int i=0;i<files.size(); ++i){
check=0;
head="";
number="";
for(int j=0;j<files[i].size(); ++j){
if(check == 0 && files[i][j]>='0' && files[i][j]<='9'){
//head자르기
head = files[i].substr(0,j);
check=1;cut=j;
continue;
}
if(check==1 && (files[i][j]<'0' || files[i][j]>'9')){
number = files[i].substr(cut,j-cut);
check=2;
break;
}
}
if(check != 2){
number = files[i].substr(cut);
}
for(int k=0;k<head.size(); ++k){
head[k]=tolower(head[k]);
}
int num = stoi(number);
v.push_back({files[i],{head, num}});
}
stable_sort(v.begin(), v.end(), compare);
for(int k=0;k<v.size();++k){
answer.push_back(v[k].first);
}
return answer;
}
728x90
'알고리즘_프로그래머스 > KAKAO' 카테고리의 다른 글
[프로그래머스] C/C++ [2020 KAKAO BLIND RECRUITMENT] 문자열 압축 (0) | 2021.10.26 |
---|---|
c/c++ 2018 카카오 블라인드 [3차] n진수 게임 (0) | 2021.08.24 |
2018 KAKAO BLIND RECRUITMENT [추석트래픽] (0) | 2021.07.21 |
2019 KAKAO BLIND RECRUITMENT_실패율 (3) | 2021.03.18 |
Level.2_괄호 변환 (0) | 2021.03.07 |
Comments