시저 암호(알파벳 순환 이동)

2024. 12. 31. 11:58·공부/Code Cata

#include <string>
#include <vector>

using namespace std;

string solution(string s, int n) 
{
    for(int i = 0; i < s.length(); ++i)
    {
        char NowChar = s[i];
        
        // 공백일 경우
        if(NowChar == ' ') continue;
        
        // 대소문자 경우에 따라 알파벳 순환 이동(circular shifting)
        int Case = (NowChar >= 'a') ? 'a' : 'A'; 
        s[i] = Case + (NowChar - Case + n) % 26;
    }
    
    return s;
}

s[i] = Case + (NowChar - 'A' + n)  % 26 

  • 26개의 알파벳을 'A'를 0부터  'Z'를 25까지의 숫자로 변환한다.
  • 만약 NowChar가 'Z'라고 가정하면 'Z' - 'A'의 값은 25가 된다.
  • 여기서 n의 값이 3이라고 가정한다면 28 % 26의 계산식이 되고
  • 최종적으로 'A' + 2의 값인 'C'가 s[i]에 들어가게 된다.

'공부 > Code Cata' 카테고리의 다른 글

람다 함수로 사용자 설정 정의해 정렬하기  (0) 2025.01.01
문자열에서 영문 숫자 변환하기  (0) 2024.12.31
최소 직사각형 구하기  (0) 2024.12.31
재귀호출로 배열의 합 검사하기  (0) 2024.12.30
비트 AND연산 / std::toupper / std::tolower  (0) 2024.12.30
'공부/Code Cata' 카테고리의 다른 글
  • 람다 함수로 사용자 설정 정의해 정렬하기
  • 문자열에서 영문 숫자 변환하기
  • 최소 직사각형 구하기
  • 재귀호출로 배열의 합 검사하기
동그래님
동그래님
  • 동그래님
    개발자 동그래
    동그래님
  • 전체
    오늘
    어제
    • 분류 전체보기 (210)
      • 공부 (51)
        • Code Cata (50)
      • 내배캠 (151)
        • TIL (50)
        • C++ (37)
        • Unreal Engine (48)
        • GAS(Gameplay Ability System.. (16)
      • Project (7)
        • Gunfire Paragon (5)
        • Arena Fighters (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    동그래님
    시저 암호(알파벳 순환 이동)
    상단으로

    티스토리툴바