코딩테스트/LV. 0

LV. 0 :: 문자열 정렬하기 1

KUROMI98 2023. 1. 22. 01:32

https://school.programmers.co.kr/learn/courses/30/lessons/120850

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

function solution(my_string) {
    var text = 0;
    var arr = [];
    
    for (i=0; i<my_string.length; i++)
    { // my_string의 전체 원소에 대하여,
        if (isNaN(my_string[i]) != 0) {}
        // my_string의 i번째가 숫자가 아니라면 아무 것도 하지 말고,
        else {text+=my_string[i];}
        // 숫자가 아니라면 text라는 문자열에 합쳐준다
    }
    
    arr = text.split('');
    // 그러나 text는 문자열이니까, 배열을 만들어서 text를 하나하나 나눠서 저장한다

    arr.shift();
    // 배열의 첫 번째 원소에는 0이 저장되었으니까, 배열 첫번째 원소는 제거한다.
    // (첫 번째 원소에 0이 저장된 이유는 아까 선언해주면서 초기화할때 0이 저장되었기 때문이다.)
    
    for (i=0; i<arr.length; i++){arr[i] = Number(arr[i])}
    // 배열 내부의 원소들이 문자열의 형태이니, 숫자로 자료형을 바꾸어준다.
    
    arr = arr.sort((a,b)=>a-b);
    // 순서가 안 맞으니, 순서대로 정렬해준다.
    
    return arr;
}

+)230511

const solution = (my_string) => {
    return my_string.split('').filter(x=>isNaN(x)!=true).map(x=> parseInt(x)).sort((a,b)=>a-b);
}

// 문자열을 나눠서 배열로 만들기 & 숫자인 것만 남겨두기 & 문자열 형식을 숫자로 바꾸기 & 정렬하기

230526 python

def solution(my_string):
    array = list(my_string)
    answer = []
    for i in array:
        if i.isdigit():
            answer.append(int(i))
    return sorted(answer)

230916 C++

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

using namespace std;

vector<int> solution(string my_string) {
    vector<int> answer; 
    for (char c : my_string) { // 문자열 내부의 모든 문자에 대해
        if (isdigit(c)) { // 문자를 숫자로 바꾸자.
            int digit = c - '0'; // 문자를 정수로 변환
            answer.push_back(digit); // 배열에 push
        }
    }
    sort(answer.begin(), answer.end()); // 오름차순 정렬
    return answer;
}