๐Ÿ“ฆ Chango/๐Ÿฃ EDOC

[BOJ B1][C++] ๋ฐฑ์ค€ 15312๋ฒˆ: ์ด๋ฆ„ ๊ถํ•ฉ

์„ ๋‹ฌ 2022. 3. 30. 08:46
๋ฐ˜์‘ํ˜•

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;
}
    
/**/
๋ฐ˜์‘ํ˜•