Coding Test Study - 1주차

Checking·2021년 4월 18일
0

Coding Test Study

목록 보기
1/22

Level 1

크레인 인형뽑기 게임

#include <string>
#include <vector>
#include <stack>

using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    stack <int> bucket;
    
    for (int i=0; i<moves.size(); i++) {
        int grap_pos = moves[i] - 1;
        
        for (int j=0; j<board.size(); j++) {
            if (board[j][grap_pos] != 0) {
                
                int catch_doll = board[j][grap_pos];
                board[j][grap_pos] = 0;

                if (bucket.empty() || catch_doll != bucket.top()) {
                    
                    bucket.push(catch_doll);
                } else {
                    
                    bucket.pop();
                    answer += 2;
                }
                break;
            }
        }
    }
    
    return answer;
}

/*
정확성  테스트
    테스트 1 〉	통과 (0.01ms, 3.93MB)
    테스트 2 〉	통과 (0.01ms, 3.98MB)
    테스트 3 〉	통과 (0.01ms, 3.95MB)
    테스트 4 〉	통과 (0.03ms, 3.96MB)
    테스트 5 〉	통과 (0.01ms, 3.95MB)
    테스트 6 〉	통과 (0.03ms, 3.96MB)
    테스트 7 〉	통과 (0.01ms, 3.9MB)
    테스트 8 〉	통과 (0.02ms, 3.95MB)
    테스트 9 〉	통과 (0.02ms, 3.97MB)
    테스트 10 〉	통과 (0.02ms, 3.96MB)
    테스트 11 〉	통과 (0.03ms, 3.94MB)
    
채점 결과
    정확성: 100.0
    합계: 100.0 / 100.0
*/

신규 아이디 추천

#include <string>
#include <vector>

using namespace std;

string solution(string new_id) {

    // stage 1
    for (int i=0; i<new_id.length(); i++) {
        if ('A' <= new_id[i] && new_id[i] <= 'Z') {
            new_id[i] = tolower(new_id[i]);
        }
    }

    // stage 2
    for (int i=0; i<new_id.length(); i++) {
        char txt = new_id[i];
        if (!('a' <= txt && txt <= 'z') &&
            !('0' <= txt && txt <= '9') &&
            !('-' == txt) && !('_' == txt) &&
            !('.' == txt)) {
            
            new_id = new_id.replace(i, 1, "");
            i--;
        }
    }

    // stage 3
    for (int i=1; i<new_id.length(); i++) {
        if (new_id[i] == '.' && new_id[i-1] == '.') {
            new_id = new_id.replace(i, 1, "");
            i--;
        }
    }

    // stage 4
    while (new_id[0] == '.') new_id = new_id.replace(0, 1, "");
    while (new_id[new_id.length()-1] == '.') new_id = new_id.replace(new_id.length()-1, 1, "");

    // stage 5
    if (new_id.length() == 0) new_id = "a";

    // stage 6
    if (new_id.length() >= 16) new_id = new_id.substr(0, 15);

    while (new_id[0] == '.') new_id = new_id.replace(0, 1, "");
    while (new_id[new_id.length()-1] == '.') new_id = new_id.replace(new_id.length()-1, 1, "");

    // stage 7
    while (new_id.length() <= 2) {
        new_id.push_back(new_id[new_id.length()-1]);
    }
    
    return new_id;
}

/*
정확성  테스트
    테스트 1 〉	통과 (0.01ms, 3.83MB)
    테스트 2 〉	통과 (0.01ms, 3.95MB)
    테스트 3 〉	통과 (0.01ms, 3.57MB)
    테스트 4 〉	통과 (0.01ms, 3.93MB)
    테스트 5 〉	통과 (0.01ms, 3.83MB)
    테스트 6 〉	통과 (0.01ms, 3.84MB)
    테스트 7 〉	통과 (0.01ms, 3.96MB)
    테스트 8 〉	통과 (0.01ms, 3.84MB)
    테스트 9 〉	통과 (0.01ms, 3.96MB)
    테스트 10 〉	통과 (0.01ms, 3.95MB)
    테스트 11 〉	통과 (0.01ms, 3.96MB)
    테스트 12 〉	통과 (0.01ms, 3.95MB)
    테스트 13 〉	통과 (0.01ms, 3.94MB)
    테스트 14 〉	통과 (0.01ms, 3.93MB)
    테스트 15 〉	통과 (0.01ms, 3.96MB)
    테스트 16 〉	통과 (0.02ms, 3.93MB)
    테스트 17 〉	통과 (0.02ms, 3.91MB)
    테스트 18 〉	통과 (0.02ms, 3.95MB)
    테스트 19 〉	통과 (0.03ms, 3.98MB)
    테스트 20 〉	통과 (0.04ms, 3.95MB)
    테스트 21 〉	통과 (0.04ms, 3.96MB)
    테스트 22 〉	통과 (0.04ms, 3.94MB)
    테스트 23 〉	통과 (0.04ms, 3.95MB)
    테스트 24 〉	통과 (0.02ms, 3.97MB)
    테스트 25 〉	통과 (0.03ms, 3.71MB)
    테스트 26 〉	통과 (0.03ms, 3.92MB)
    
채점 결과
    정확성: 100.0
    합계: 100.0 / 100.0
*/

Level 2

기능 개발

#include <string>
#include <vector>
#include <queue>
#include <cmath>

using namespace std;

vector<int> solution(vector<int> progresses, vector<int> speeds) {
    vector<int> answer;

    int now_days = ceil((100 - progresses[0]) / (double) speeds[0]);
    int complete_stack = 0;

    for (int i = 0; i < progresses.size(); i++) {
        int now_project_complete = ceil((100 - progresses[i]) / (double) speeds[i]);

        if (now_days < now_project_complete) {
            answer.push_back(complete_stack);

            now_days = now_project_complete;
            complete_stack = 1;
        }
        else {
            complete_stack++;
        }
    }
    
    answer.push_back(complete_stack);

    return answer;
}

/*
정확성  테스트
    테스트 1 〉	통과 (0.01ms, 3.94MB)
    테스트 2 〉	통과 (0.01ms, 3.72MB)
    테스트 3 〉	통과 (0.01ms, 3.95MB)
    테스트 4 〉	통과 (0.01ms, 3.89MB)
    테스트 5 〉	통과 (0.01ms, 3.93MB)
    테스트 6 〉	통과 (0.01ms, 3.95MB)
    테스트 7 〉	통과 (0.02ms, 3.89MB)
    테스트 8 〉	통과 (0.01ms, 3.95MB)
    테스트 9 〉	통과 (0.01ms, 3.94MB)
    테스트 10 〉	통과 (0.01ms, 3.89MB)
    테스트 11 〉	통과 (0.01ms, 3.95MB)
    
채점 결과
    정확성: 100.0
    합계: 100.0 / 100.0
*/
profile
(ง ᐖ)ว

0개의 댓글