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를 쓰라는듯.