1. Day41

  • 알고리즘 코드카타
  • C++과 Unreal Engine으로 3D 게임 개발
  • 베이직 실전 클래스

2. CH3 - C++과 Unreal Engine으로 3D 게임 개발(Day41)

  • Chapter 3 C++과 Unreal Engine으로 3D 게임 개발(2-4)
    • State Machine 설계를 통한 캐릭터 동작 애니메이션 적용

3. 알고리즘 코드카타

  • 시저 암호(초기 코드)
    • 소문자일경우와 대문자일경우를 나눠서 z와 Z를 넘기면 26을 빼주는 방식
#include <string>
#include <vector>

using namespace std;

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

    return s;
}
  • 시저 암호(개선 코드)
    • range - based for 문을 이용해 인덱싱없이 처리
    • 소문자일 경우와 대문자일 경우를 나눠서
      • a - ‘a’ → 0 ~ 25 인덱스로 변환 (대문자도 마찬가지)
        • n → n 칸이동
      • % 26 → 범위 초과 시 wrap
        • ‘a’ → 다시 문자로 변환
#include <string>
#include <vector>

using namespace std;

string solution(string s, int n) {
    for (auto& a : s)
    {
        if (a >= 'a' && a <= 'z')
        {
            a = (a - 'a' + n) % 26 + 'a';
        }
        else if (a >= 'A' && a <= 'Z')
        {
            a = (a - 'A' + n) % 26 + 'A';
        }
    }

    return s;
}

4. 베이직 실전 클래스

  • 언리얼C++의 스마트포인터
  • RAII

5. 내일 계획 : CH3 강의 학습, 알고리즘 문제 집중 CS50x 2주차 진행, 베이직 실전 클래스 과제 진행

+ Recent posts