Unreal5 공부/TIL

2026/04/27 TIL

anna59 2026. 4. 27. 23:39

오늘의 목표

  • 아침 코드카타
  • 강의 ch 3 다 듣기
  • 7번 과제 다듬기

 


 

코드카타

[문제] 시저 암호

#include <string>
#include <vector>

using namespace std;

string solution(string s, int n) {
    string answer = "";

    for (size_t i = 0; i < s.length(); ++i)
    {
        if (s[i] == ' ')
        {
            continue;
        }
        else if (65 <= s[i] && s[i] <= 90)
        {
            s[i] = s[i] + n;
            if (s[i] > 90) {
                s[i] = s[i] % 90 + 64;
            }
        }
        else if (97 <= s[i] && s[i] <= 122)
        {
            s[i] = s[i] + n;
            if (s[i] > 122)
            {
                s[i] = s[i] % 122 + 96;
            }
            
        }

    }
    answer += s;
    return answer;
}

 

처음에는 각 문자에 n을 더한 값이 대문자 A~Z와 소문자 a~z 사이에 들어올 수 있도록 숫자로 수정했다.

그러나 제출했더니 몇몇 답은 맞고 몇몇 답은 오류가 발생했다.

 

string solution(string s, int n) {
    string answer = "";

    for (size_t i = 0; i < s.length(); ++i)
    {
        if ('A' <= s[i] && s[i] <= 'Z')
        {
            s[i] = (s[i] - 'A' + n) % 26 + 'A';
        }
        else if ('a' <= s[i] && s[i] <= 'z')
        {
            s[i] = (s[i] - 'a' + n) % 26 + 'a';
        }

    }
    answer += s;
    return answer;
}

 

기존 코드는 의도도 불명확하고 특정 입력값에서 오류를 일으켰다.

기존의 방식 대신, s[i]의 값을 1~26으로 바꾼 뒤 나중에 'A'나 'a' 값을 더해주는 방식으로 만드니 오류 없이 통과가 가능했다. 근데 기존 코드는 뭐가 문제일까... 논리적으로는 맞는 것 같은데 입력값을 확인할 수 없으니 알 수가 없다.

 


 

언리얼 강의 듣기

 

Q. SetRootComponent 함수와 RootComponent = (Component) 직접 할당의 차이

직접 할당시

 

  • 기존 RootComponent와의 관계 정리 X
  • 컴포넌트 계층구조 업데이트 X
  • Transform 동기화 X

SetRootComponent가 이것들을 자동으로 처리해준다.

생성자에서는 아직 RootComponent의 계층구조가 없는 상태이므로 그대로 해도 상관없지만 웬만하면 SetRootComponent를 쓰라는듯.