SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
#include <iostream>
#include <cctype>
#include <string>
#include <bitset>
#include <cmath>
using namespace std;
int decode(char c) {
if (isupper(c)) {
return (c - 'A');
}
else if (islower(c)) {
return (c - 'a' + 26);
}
else if (isdigit(c)) {
return c - '0' + 52;
}
else {
if (c == '+') {
return 62;
}
else {
return 63;
}
}
}
string solution(string str) {
string answer;
string nums;
for (int i = 0; i < str.size();i++) {
if (i > 0 && i % 4 == 0) {
for (int j = 0; j < 3; j++) {
string tmp = nums.substr(j * 8, 8);
char c = 0;
for (int k = 0; k < tmp.size(); k++) {
c += pow(2, 8 - k - 1) * (tmp[k] - '0');
}
answer.push_back(c);
}
nums = "";
}
int num = decode(str[i]);
nums += bitset<6>(num).to_string();
}
//tmp가 남아있을 경우 확인
for (int j = 0; j < nums.size()/8; j++) {
string tmp = nums.substr(j * 8, 8);
char c = 0;
for (int k = 0; k < tmp.size(); k++) {
c += pow(2, 8 - k - 1) * (tmp[k] - '0');
}
answer.push_back(c);
}
return answer;
}
int main() {
int T; cin >> T;
for (int t = 1; t <= T; t++) {
string str; cin >> str;
cout << "#" << t << " " << solution(str) << endl;
}
return 0;
}'전공공부 > 코딩테스트' 카테고리의 다른 글
| (c++) SWEA "2805) 농작물 수확" (0) | 2022.05.28 |
|---|---|
| (c++) SWEA "2007) 패턴 마디의 길이" (0) | 2022.05.28 |
| (c++) SWEA "1204) 최빈수" (0) | 2022.05.25 |
| (c++) SWEA "1954) 달팽이 숫자" (0) | 2022.05.25 |
| (c++) SWEA "1206) 1일차 - View" (0) | 2022.05.25 |