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

[프로그래머스] 배열, 정렬, 문자열

웅드 2024. 1. 19. 15:23
  • 특이한 정렬
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool compare(pair<int,int> a, pair<int,int>b){
    if(a.first == b.first) return a.second > b.second;
    return a.first < b.first;
}

vector<int> solution(vector<int> numlist, int n) {
    vector<int> answer;
    vector<pair<int,int>> v;
    sort(numlist.begin(), numlist.end(), greater<>());
    
    for(int i=0; i< numlist.size(); i++){
        v.push_back(make_pair(abs(numlist[i]-n),numlist[i]));
    }
    sort(v.begin(),v.end(),compare);
    for(int i=0; i< v.size(); i++){
        answer.push_back(v[i].second);
    }
    return answer;
}
  • 등수 매기기
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<vector<int>> score) {
    vector<int> answer;
    vector<int> avg;
    int average=0;
    for(int i=0; i<score.size(); i++){
        average = (score[i][0] + score[i][1]);
        avg.push_back(average);
    }
    int cnt=1;
    for(int i=0; i< avg.size(); i++){
        for(int j=0; j< avg.size(); j++){
            if(avg[i] < avg[j]) cnt++;
        }
        answer.push_back(cnt);
        cnt=1;
    }
    return answer;
}
  • 옹알이 (1)
#include <string>
#include <vector>

using namespace std;

int solution(vector<string> babbling) {
    int answer = 0;
    for(int i=0; i< babbling.size(); i++){
        bool b = false;
        for(int j=0; j<babbling[i].size(); j++){
            if(babbling[i].substr(j,3)=="aya") j+= 2;
            else if(babbling[i].substr(j,2)=="ye") j+= 1;
            else if(babbling[i].substr(j,3)=="woo") j+= 2;
            else if(babbling[i].substr(j,2)=="ma") j+= 1;
            else{
                b = true;
                break;
            }
        }
        if(!b) answer++;
    }
    
    return answer;
}
  • 로그인 성공?
#include <string>
#include <vector>

using namespace std;

string solution(vector<string> id_pw, vector<vector<string>> db) {
    string answer="";
    for(int i=0; i<db.size(); i++){
        if(id_pw[0]==db[i][0] && id_pw[1]==db[i][1]) return "login";
        else if(id_pw[0]==db[i][0]) answer = "wrong pw";
        else {
            if(empty(answer))
                answer = "fail";
        }
    }
    return answer;
}
반응형