[BOJ B1][C++] λ°±μ€ 15312λ²: μ΄λ¦ κΆν©
https://www.acmicpc.net/problem/15312
15312λ²: μ΄λ¦ κΆν©
μμ΄ λλ¬Έμ μνλ²³ 26κ°μ νμλ μμλλ‘ 3, 2, 1, 2, 3, 3, 2, 3, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1 λ‘ μ νλ€. (μΆμ μκ° μνλ²³ λλ¬Έμλ₯Ό μ°λ λ°©λ²μ΄ κΈ°μ€μ΄λ€)
www.acmicpc.net
λ¬Έμ
'μ΄λ¦ κΆν©'μ΄λ λ μ¬λμ μ΄λ¦μ ν κΈμμ© λ²κ°μ μ¨ λκ³ νμλ₯Ό κ·Έ μλμ μ μ λ€, μΈμ ν μ«μλΌλ¦¬ λν μΌμ μ리 κ°μ μλμ μ μ΄ λκ°λ©΄μ λ§μ§λ§μ λ¨μ λ μ«μλ₯Ό λ³΄κ³ κΆν©μ΄ λ§λ μ λλ₯Ό μμ보λ μΌμ’ μ μ μ΄λ€.
μμ§λ 'κ·Έλ 'λ₯Ό μμ§ λͺ»ν λ‘맨ν°μ€νΈ μ’ λ―Όμ΄λ μ΄λ λ κ·Έλ μ μ΄λ¦ κΆν©μ ν λ² ν΄ λ³΄κΈ°λ‘ νλλ°, κ·Έ κ²°κ³Όλ 좩격μ μ΄μλ€.

μ΄ κ²°κ³Όλ₯Ό λμ ν λ°μλ€μΌ μ μμλ μ’ λ―Όμ΄λ μ΄κ²μ΄ νλ Έμμ μ¦λͺ νκΈ° μν΄ μ΄μ¬ν 머리λ₯Ό κ΅΄λ Έκ³ , λ€μκ³Ό κ°μ λ³λͺ 거리λ₯Ό μκ°ν΄ λλ€.
"'κ·Έλ 'λ νκ΅μΈμ΄ μλλκΉ νκΈλ‘ μ΄λ¦ κΆν©μ 보면 κ²°κ³Όκ° μ΄μν κ²μ΄ λΉμ°νμ§! μΈκ³ 곡μ©μ΄μΈ μμ΄ μνλ²³μΌλ‘ μ΄λ¦μ μ°λ©΄ κ²°κ³Όκ° μ ννκ² λμ¬ κ±°μΌ!"
κ·Έλμ μ’ λ―Όμ΄λ μνλ²³ λλ¬Έμλ‘ μ΄λ¦μ μ¨ λκ³ μ΄λ¦ κΆν©μ λ³΄λ €κ³ νλ€. κ·Έλ°λ°, μ’ λ―Όμ΄λ μμΌλ‘ κ³μ°μ νλ©΄ μ€μλ₯Ό ν κΉ λλ €μ λΉμ μκ² νλ‘κ·Έλ¨μ μ§ λ¬λΌκ³ λΆννλ€. μ’ λ―Όμ΄λ₯Ό λμμ£Όμ! μ’ λ―Όμ΄κ° μ ν μνλ²³ λλ¬Έμμ νμλ ννΈλ₯Ό μ°Έκ³ νμ.
μ λ ₯
첫 λ²μ§Έ μ€μλ μ’ λ―Όμ΄μ μμ΄ μ΄λ¦ A κ° μ£Όμ΄μ§λ€.
λ λ²μ§Έ μ€μλ 'κ·Έλ 'μ μμ΄ μ΄λ¦ B κ° μ£Όμ΄μ§λ€.
βA B λͺ¨λ μνλ²³ λλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ§ κΈΈμ΄ 2 μ΄μ 2000 μ΄νμ λ¬Έμμ΄μ΄λ©°, λμ κΈΈμ΄κ° κ°μμ΄ λ³΄μ₯λλ€. μ΄λ¦ κΆν©μ λ³Ό λλ A μ 첫 κΈμλ₯Ό λ¨Όμ μ΄λ€κ³ νμ.
μμΆλ ₯
μ΄λ¦ κΆν©μ κ²°κ³Όλ₯Ό λ μ리μ μ«μλ‘ μΆλ ₯νλ€. (μμ μλ¦¬κ° 0μ΄μ΄λ λ μλ¦¬λ‘ μΆλ ₯νλ€)
ννΈ
μμ΄ λλ¬Έμ μνλ²³ 26κ°μ νμλ μμλλ‘ 3, 2, 1, 2, 3, 3, 2, 3, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1 λ‘ μ νλ€. (μΆμ μκ° μνλ²³ λλ¬Έμλ₯Ό μ°λ λ°©λ²μ΄ κΈ°μ€μ΄λ€)
νμ΄
// Authored by : seondal
// νμ΄ : https://whkakrkr.tistory.com/
// Co-authored by : -
//#include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;
int stroke[26] = {3, 2, 1, 2, 3, 3, 2, 3, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1};
vector<int> v;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string a,b;
cin >> a >> b;
for(int i=0; i<a.length(); i++){
v.push_back(stroke[a[i]-'A']);
v.push_back(stroke[b[i]-'A']);
}
while(true){
vector<int> tmp;
for(int i=0; i<v.size()-1; i++)
tmp.push_back((v[i]+v[i+1]) % 10);
v = tmp;
if(v.size() <= 2)
break;
}
cout << v[0] << v[1];
return 0;
}
/**/