#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
*/
#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
*/