코딩테스트/프로그래머스 - LV 0

[프로그래머스] 문자열, 해시, 배열, 수학

웅드 2024. 1. 10. 22:58
  • 영어가 싫어요
#include <string>
#include <vector>

using namespace std;

vector<string> s = {"zero", "one", "two", "three", 
                    "four", "five", "six", "seven", 
                    "eight", "nine", "ten"};

long long solution(string numbers) {
    long long answer = 0;
    while(numbers.length()!=0){
        for(int i=0; i<s.size(); i++){
            if(numbers.substr(0,s[i].length())==s[i]){
                answer = answer*10 + i;
                numbers=numbers.substr(s[i].length());
            }
        }
    }
    return answer;
}
  • 인덱스 바꾸기
#include <string>
#include <vector>

using namespace std;

string solution(string my_string, int num1, int num2) {
    string answer = "";
    char temp;
    temp = my_string[num1];
    my_string[num1] = my_string[num2];
    my_string[num2] = temp;
    return my_string;
}
  • 한 번만 등장한 문자
#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    string answer = "";
    int arr[26]={0,};
    for(int i=0; i<s.size(); i++){
        arr[s[i]-'a']++;
    }
    int n=0;
    for(int i=0; i<26; i++){
        if(arr[i]==1) answer += i + 97;
    }
    return answer;
}
  • 약수 구하기
#include <string>
#include <vector>

using namespace std;

vector<int> solution(int n) {
    vector<int> answer;
    for(int i=1; i<n+1; i++){
        if(n % i == 0) answer.push_back(i);
    }
    return answer;
}
반응형