- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 로그인
- 연결리스트
- 비주얼 베이직
- til
- oauth
- firebase google
- 배열
- C++
- 정렬
- 안드로이드
- 공유대학
- sql
- 자바
- 백준
- C언어
- 프로그래머스
- Java
- 동적할당
- python
- 자료구조
- 파이썬
- 코딩테스트
- android studio
- Firebase
- 구글 로그인
- 알고리즘
- 컴퓨터공학과
- 안드로이드 스튜디오
- 프로그래밍 입문
Archives
코딩하는 해달이
[level 1] 문자열 내 마음대로 정렬하기 본문
문제 설명
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
제한 조건
- strings는 길이 1 이상, 50이하인 배열입니다.
- strings의 원소는 소문자 알파벳으로 이루어져 있습니다.
- strings의 원소는 길이 1 이상, 100이하인 문자열입니다.
- 모든 strings의 원소의 길이는 n보다 큽니다.
- 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.
문제 이해
문자열 벡터에서 각문자열의 n번째 인덱스에 있는 문자를 기준으로 오름차순으로 정렬한다.
알고리즘
1. 문자열 리스트를 사전에 먼저 나오는 순서로 정렬시킨다.
2. n번째 인덱스에 있는 문자를 추출해 다른 벡터에 넣어준다.
3. 순차정렬을 이용해 오름차순으로 알파벳을 정렬한다.
4. 문자를 추출한 벡터와 입력받은 문자열 벡터의 n번째 인덱스를 비교하며 같은 순서대로 answer에 집어넣는다.
풀이 코드
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
vector<string> solution(vector<string> strings, int n) {
vector<string> answer;
vector<string> chs;
string tmp;
sort(strings.begin(), strings.end());
for (int i = 0; i < strings.size(); i++)
{
chs.push_back(strings[i].substr(n, 1));
}
for (int j = 0; j < chs.size(); j++)
{
for (int i = 0; i < chs.size() - 1; i++)
{
if (chs[i] > chs[i + 1])
{
tmp = chs[i];
chs[i] = chs[i + 1];
chs[i + 1] = tmp;
}
}
}
for (int i = 0; i < chs.size(); i++)
{
for (int j = 0; j < chs.size(); j++)
{
if (chs[i][0] == strings[j][n])
{
answer.push_back(strings[j]);
strings.erase(strings.begin() + j);
break;
}
}
}
return answer;
}
https://school.programmers.co.kr/learn/courses/30/lessons/12915
반응형
'개인 공부 > 프로그래머스' 카테고리의 다른 글
[level 1] 나누어 떨어지는 숫자 배열 (0) | 2022.07.26 |
---|---|
[level 1] 두 정수 사이의 합 (0) | 2022.07.25 |
[level 1] 문자열 내 p와 y의 개수 (0) | 2022.07.22 |
[level 1] 문자열 내림차순으로 배치하기 (0) | 2022.07.22 |
[level 1] 문자열 다루기 기본 (0) | 2022.07.22 |
Comments