본문 바로가기

Algorithm/String

(C++) - 프로그래머스(연습문제) : 시저 암호

반응형

programmers.co.kr/learn/courses/30/lessons/12926?language=cpp

 

코딩테스트 연습 - 시저 암호

어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀

programmers.co.kr

문자열 처리 문제였습니다.

 

풀이방법

 대문자와 소문자를 구별해준 후 n만큼 알파벳을 이동한 후에 해당 알파벳을 answer에 더해주시면 됩니다.

 

Code

#include <string>
#include <vector>

using namespace std;

string solution(string s, int n) {
    string answer = "";
    for(int i = 0; i < s.size(); i++){
        int num;
        if('a'<=s[i] && s[i] <='z'){
            num = (s[i] -'a' + n) % 26;
            answer += num + 'a';
        }else if('A'<=s[i] && s[i] <='Z'){
            num = (s[i] -'A' + n) % 26;
            answer += num + 'A';
        }else
            answer += s[i];
    }
    return answer;
}