본문 바로가기
코테/프로그래머스

문자열 정렬하기(1) C++

by Slow Motion~ 2023. 3. 21.
728x90

맨 처음 접근할때 어떻게 해야할지 감이 안와서

 

아스키코드를 사용하려고 했다.

 

아스키 코드 값을 해당하는 숫자로 변환해 주고 나서

 

배열에 저장해주고 그 저장한 값을 버블 정렬로 정렬해 주었다.

 

근데 너무 무식하게 풀었음

#include <string>
#include <vector>

using namespace std;

vector<int> solution(string my_string) {
    vector<int> answer;
    for(int i = 0; i < my_string.size(); i++){
        if(my_string[i] == 48){
            answer.push_back(0);
        }
        if(my_string[i] == 49){
            answer.push_back(1);
        }
        if(my_string[i] == 50){
            answer.push_back(2);
        }
        if(my_string[i] == 51){
            answer.push_back(3);
        }
        if(my_string[i] == 52){
            answer.push_back(4);
        }
        if(my_string[i] == 53){
            answer.push_back(5);
        }
        if(my_string[i] == 54){
            answer.push_back(6);
        }
        if(my_string[i] == 55){
            answer.push_back(7);
        }
        if(my_string[i] == 56){
            answer.push_back(8);
        }
        if(my_string[i] == 57){
            answer.push_back(9);
        }
     
            
          
        
    }
    int temp =0;
    for(int i =0; i<answer.size()-1; i++){
      for(int j = 0; j <answer.size() -i -1; j++){
            if(answer[j] > answer[j+1]){
            temp = answer[j+1];
            answer[j+1] = answer[j];
            answer[j] = temp;
            }
      }
        
        
    }
    return answer;
}

 

 

수정한 코드

#include <string>
#include <vector>

using namespace std;

vector<int> solution(string my_string) {
    vector<int> answer;
    for(int i = 0; i < my_string.size(); i++){
        if(my_string[i] >=48 && my_string[i] <= 57){
        answer.push_back(my_string[i] - 48);
        }
    }

    int temp =0;
    for(int i =0; i<answer.size()-1; i++){
      for(int j = 0; j <answer.size() -i -1; j++){
            if(answer[j] > answer[j+1]){
            temp = answer[j+1];
            answer[j+1] = answer[j];
            answer[j] = temp;
            }
      }       
    }
    return answer;
}

'코테 > 프로그래머스' 카테고리의 다른 글

문자열 정렬하기 (1) C++ 버블정렬  (0) 2023.03.21
특정 문자 제거  (0) 2023.02.22
문자 반복 출력하기  (0) 2023.02.22
문자열 뒤집기(for문에 대해)  (0) 2023.02.22
각도기  (0) 2023.02.21

댓글