728x90
단순한 문자열, 구현 문제이다.
문자열에 익숙하지 않아서 연습을 해야겠다.
#include <iostream>
#include <vector>
using namespace std;
string name1, name2, sumName;
int size1, size2;
vector<int> num;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int arr[26] = { 3, 2, 1, 2, 4, 3, 1, 3, 1, 1, 3, 1, 3, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1 };
cin >> size1 >> size2;
cin >> name1 >> name2;
int minSize = size1 >= size2 ? size2 : size1;
int maxSize = size1 >= size2 ? size1 : size2;
string maxString = size1 >= size2 ? name1: name2;
for (int i = 0; i < minSize; i++) {
sumName += name1[i];
sumName += name2[i];
}
for (int i = minSize; i < maxSize; i++) {
sumName += maxString[i];
}
for (int i = 0; i < size1 + size2; i++) {
int idx = sumName[i] - 'A';
num.push_back(arr[idx]);
}
while (num.size() != 2) {
vector<int> temp;
for (int i = 0; i < num.size() - 1; i++) {
int tempNum = num[i] + num[i + 1];
temp.push_back(tempNum > 9 ? tempNum - 10 : tempNum);
}
num = temp;
}
if(num[0] == 0)
cout << num[1] << "%";
else
cout << num[0] <<num[1]<< "%";
}
728x90
'문제 풀이 > 백준 알고리즘' 카테고리의 다른 글
[baekjoon 11650] 좌표 정렬하기- 정렬 (C++) (0) | 2021.01.01 |
---|---|
[baekjoon 1978] 소수 찾기- 소수, 에라토스테네스의 체 (C++) (0) | 2020.12.30 |
[baekjoon 14425] 문자열 집합- 문자열, map (C++) (0) | 2020.12.24 |
[baekjoon 14502] 연구소 - 그래프탐색(BFS,DFS), 브루트포스 (0) | 2020.12.05 |
[baekjoon 1922] 네트워크 연결 - 최소 스패닝 트리(크루스칼, Union-Find) (0) | 2020.11.29 |