프로그래머스 Lv.1 코딩테스트

[프로그래머스 Lv.1] 시저 암호

하다블 2022. 2. 17. 19:20
반응형

문제는 다음과 같습니다.

코딩테스트 연습 - 시저 암호 | 프로그래머스 (programmers.co.kr)

 

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

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

programmers.co.kr

 

풀이 코드는 다음과 같습니다.

#include <string>
#include <vector>

using namespace std;

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

지난 문제에 이어 알파벳의 아스키코드를 이애하고, 주어진 조건에 맞게 프로그래밍하는 과정이지만 중요한 부분은 숫자를 문자와 연산할 때의 과정인 것 같습니다.

반응형