오늘의 알고리즘 - x만큼 간격이 있는 n개의 숫자
초기화 코드 ↓
public class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[] {};
return answer;
}
}
작성 코드 ↓
public class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[n];
for (int i = 0; i < n; i++)
{
answer[i] = (long)x * (i + 1);
}
return answer;
}
}
내가 실수했던 부분 :
long[] answer = new long[n];
배열.. 아직 뭔가 감이 잡히지 않은 느낌이다.
그래도 배열 개념 자체에 대한 학습 부족 문제 빼고는
오늘의 문제 무사히 해결 완료 !
어서 듣던 강의와 개인과제 끝내고 C# 문법 기초탄탄 복습해야겠다 🔥
개인과제 ing
캐릭터 이동 방법
TopDownCharacterController.cs
간단 ver.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TopDownCharacterController : MonoBehaviour
{
public float speed = 5f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
float x = Input.GetAxisRaw("Horizontal");
float y = Input.GetAxisRaw("Vertical");
transform.position += new Vector3(x, y) * speed * Time.deltaTime;
}
}
memo
스크립트를 만들 때 스크립트 이름의 클래스를 항상 갖고 있어야 함 !
Start 는 가장 첫 프레임에 동작한다.
Update 는 매 프레임마다 동작한다.
Time.deltaTime 을 곱하는 이유
deltaTime 은 이전 프레임과 현재 프레임 사이의 시간. (실제 시간 처리도 하는 친구)
"deltaTime 은 게임의 프레임 속도에 상관없이 일정한 시간 간격으로 동작하는 게임을 만들 때 유용하게 사용된다."
GetAxis 는 0 부터 1 까지 도달하는 값을 준다. 즉, smoothing filtering 있음.
GetAxisRaw 는 0, 1, -1 딱 떨어지는 값으로 그 안에 스무싱 값 없음. (= 등속도, 처음에 천천히 가는게 없다.)
unity editor Inspector 에서 값을 바꿀 수 있도록 하고 싶다면(e.g. speed 조절) public 으로 해주자. 그럼 serialize 즉 동기화가 된다.
만약 speed 를 public 이 아닌 private 을 꼭 해야하는 상황이라면,
[SerializeField] private float speed = 5f;
[SerializedField] 해서 speed 라는 값을 unity 랑 강제적으로 동기화를 시키자.
★ unity editor 에서 무언가를 수정하기 전에 지금 play 중인지 아닌지 체크할 것 ! play 중인데 수정하면 play 를 껐을 때 초기화된다 ^.^
복잡 ver.
이야 너무 복잡해서 어떻게 정리하지....? 🥴