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 |
댓글