KDT Unity 2주차~4주차 - 개인학습7
해당 내용의 전부는 학원에서 배우는 것이기 때문에 공개가 어렵습니다.
해당 내용의 자세한 강의가 필요하신 분들은 이곳에서 확인하시면 됩니다.
2023-11-14 TIL
알고리즘 문제
오늘의 알고리즘 문제 : 하샤드 수
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
1
2
3
4
5
6
public class Solution {
public bool solution(int x) {
bool answer = true;
return answer;
}
}
해결
일단 받은 값과 길이를 다른 변수에 담아줍니다.
그 후 for문을 사용하여 해당값의 자리수의 합을 구해 변수에 할당해줍니다.
그 후 오리지널 값을 자리수의 합으로 나머지 연산을 해 반환값을 정합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Solution {
public bool solution(int x) {
//오리지널 x 값 저장
int originX = x;
//문자열의 길이 저장
int length = x.ToString().Length;
//나눌값 저장
int y = 0;
//for문을 이용하여 y 구하기
for(int i = 0; i < length; i++)
{
y += x % 10;
x /= 10;
}
// 나머지 연산을 해 리턴값 정하기
if (originX % y==0) return true;
else return false;
}
}
아쉬운점 : int length는 사용을 안해도 됐었습니다. length대신 originX.Length를 사용했으면 되었습니다.
Personal Project
현재 개인 프로젝트를 다시 엎고 해야하는 불상사가 생겨버렸습니다.
이로 인해 캐릭터 이벤트와 물리 등을 다시 손볼 예정이며 그에 따른 업데이트 방향을 한번 적어봅니다.
Unity Input에 관하여
현재 유니티에는 Input Manager와 Input System Package가 있습니다. 편하게 New Input, Old Input이라고 하겠습니다
저는 지금까지 항상 Old Input을 사용해왔습니다. 그러다가 코드의 가독성과 수정을 할때의 불편함을 너무 느꼈습니다.
그래서 알아보던 찰나에 Unity에서 New Input이란 시스템이 업데이트 된것을 알수 있었습니다.
불필요한 업데이트를 없애고 필요한 순간에 사용을 할 수 있습니다.
단 유니티 2019.4 이상과 .NET 4이상의 런타임이 필요합니다.
해당 New Input 매니저는 정리하여 업로드 하겠습니다.
물리에 관하여
항상 고민하던 것이 있습니다. Unity에서는 오브젝트끼리의 충돌이 일어나면 해당 오브젝트가 안으로 들어갓다가 밀려나는 현상이 자주 목격됩니다.
이로인해 생각외로 보기가 힘들었고 이것을 수정해볼 생각입니다.
오늘의 정리
맨땅에 헤딩하듯 하지 말고 처음에 기획단계를 잘 잡아야한다.
그러므로 내일은 New Input을 연습하고 개인프로젝트의 기획을 다시 잡을 생각이다.
