오답노트
프로그래머스 1단계 - 문자열 내 마음대로 정렬하기 - 오답노트 본문
https://programmers.co.kr/learn/courses/30/lessons/12915
코딩테스트 연습 - 문자열 내 마음대로 정렬하기
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱
programmers.co.kr
- 문제 파악
문자열 배열이 주어지고 정수의 인덱수 n 이 주어진다. 문자열에서 n번째 글자로 정렬하되 같은 글자일 경우 문자열 사전순으로 정렬하라
- 나의 접근
sort 함수를 i번째 요소와 i+1 번째 요소를 비교하여 정렬하는 로직으로 멋대로 생각하고 있었다. (실제로 어떻게 도는지는 공부해보자) 그래서 겹치는 부분만 다시 사전순으로 정렬하려고 해서 쓸데없이 코드만 길어지고 답도 맞추지 못했다.
- 정답
sort 에 함수를 넣어서 사용하는 방식이 익숙하지 않아서 최대한 안사용하고 버틸려고 했는데, 이젠 피하지 말고 마주해야겠다.
#include "bits/stdc++.h"
using namespace std;
int N;
bool cmp(string a, string b){
if(a[N] == b[N]){
return a < b;
}
else{
return a[N] < b[N];
}
}
vector<string> solution(vector<string> strings, int n) {
vector<string> answer;
N = n;
sort(strings.begin(),strings.end(),cmp);
return strings;
}
'C,C++ > 코딩테스트' 카테고리의 다른 글
프로그래머스 1단계 - 나누어 떨어지는 숫자 배열 (0) | 2022.05.27 |
---|---|
프로그래머스 1단계 - 두 정수 사이의 합 (0) | 2022.05.27 |
프로그래머스 1단계 - 문자열 내림차순으로 배치하기 (0) | 2022.05.27 |
프로그래머스 1단계 - 문자열 내 p와 y의 개수 (0) | 2022.05.27 |
프로그래머스 1단계 - 문자열 다루기 (0) | 2022.05.26 |