C++:: 프로그래머스 < 시저 암호 >

jahlee·2023년 8월 7일
0

프로그래머스_Lv.1

목록 보기
63/75
post-thumbnail

시저암호를 사용해 주어진 문자열을 변환해서 리턴해주면 되는 문제이다. 주의할 점은 공백은 안밀린다는 점과, 대소문자 각각 돌아간다는 점이다.

#include <string>
#include <vector>

using namespace std;

string solution(string s, int n) {
    for (auto& c : s) {
        if (c == ' ') continue ;// 공백 스킵
        char a = islower(c) ? 'a' : 'A';// 대문자인지 소문자인지 확인
        char z = islower(c) ? 'z' : 'Z';// 처음과 끝 값 기억
        c = (c + n) % (z + 1);
        if (c < a) c += a;// 넘어간다면 값이 시작보다 작아지므로 시작값 더해줌
    }
    return s;
}

0개의 댓글