Affine Cipher (백준 11575)

코딩생활·2023년 11월 20일
0

백준문제풀이

목록 보기
68/308

안녕하세요. 오늘은 암호를 풀거예요.

문제

https://www.acmicpc.net/problem/11575

아이디어

s[i]와 a와 b가 있으면
일단 s[i]를 숫자로 s[i]-'A'가 됩니다.
그러면 a*(s[i]-'A')+b에 %26을 하고 다시 문자로 'A'를 더해준 다음에 char형으로 바꿔서 출력해주면 됩니다.

소스코드

#include <iostream>
#include <string>
using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    int T, i, a, b;
    string s;

    cin >> T;
    for (i = 0; i < T; i++)
    {
        cin >> a >> b >> s;
        int len = s.length(), j;
        for (j = 0; j < len; j++)
        {
            cout << (char)('A' + (a * (s[j] - 'A') + b) % 26);
        }
        cout << "\n";
    }
}


감사합니다.

0개의 댓글