반응형 전체 글542 백준 C# - 1107 +) 풀이 먼저 시간 복잡도를 살펴보자시간 제한: 2초일반적으로 1초에 약 1억 번 연산이 가능하다고 본다.이 문제에서 탐색할 채널 범위는 0 ~ 1000000 (약 100만 개) 그러므로 각 채널에 대해 최대 6자리의 숫자를 확인하는 작업이 필요하다. 따라서 전체적인 경우의 수는 100만 × 6 = 600만이므로 충분히 통과 가능하다.→ 완전탐색(Brute Force)으로 접근해도 문제 없음! 왜 1000000까지 탐색할까?단순히 N = 500000이라면 500000까지 탐색하면 되는거 아니야?→ 그렇지 않다!만약 고장난 버튼 때문에 500000부터 999999까지 전부 누를 수 없다면 입력 가능한 수는 훨씬 멀리 떨어진 곳일 수 있다. 숫자 버튼만으로 누를 수 있는 가장 큰 채널은 999999 → 6자리이다. .. 2025. 6. 11. Unity - 커스텀 에디터(Custom Editor) +) 전처리기(Preprocessor) 커스텀 에디터(Custom Editor) Unity는 게임 개발뿐 아니라 에디터 자체도 커스터마이징할 수 있는 기능을 제공한다. Inspector 창의 UI를 바꾸거나 새로운 창을 만들어서 툴처럼 쓸 수 있다.이 기능은 대부분 Editor 폴더 안에 스크립트를 넣고 사용한다. 핵심 클래스들 Editor: 기존 컴포넌트의 Inspector 커스터마이징 EditorWindow: 독립적인 에디터 창 생성 GUI/GUILayout: 즉시 모드 GUI 시스템 (레거시) EditorGUI/EditorGUILayout: 에디터 전용 GUI 컨트롤 에디터 편집을 위해 작성한 스크립트들을 저장하는 Editor 폴더가 존재한다. Editor 폴더란? Unity에서 Editor 전용 API를 사용할 수 있도록 만든 .. 2025. 6. 11. Unity - Unity에서 수학 개념을 이해해보자 2편 - 행렬,동차 좌표계,TRS, 아크 탄젠트 행렬이란?수학적으로 2차원 배열이며 Unity에서는 오브젝트의 위치, 이동, 회전, 크기 변환을 계산할 때 이 행렬을 사용한다.2×2 행렬 예시[ a b ][ c d ]4×4 행렬 예시[ m00 m01 m02 m03 ][ m10 m11 m12 m13 ][ m20 m21 m22 m23 ][ m30 m31 m32 m33 ]1. 행렬의 차원과 용도01 2×2 행렬2D 공간에서의 회전과 크기1) 회전 - Transform.rotation2D에서는 Z축 회전만 적용된다. 내부적으로 2×2 회전 행렬처럼 동작한다.2D 회전 행렬 (각도 θ만큼 회전)[ cos(θ) -sin(θ) ][ sin(θ) cos(θ) ]// 회전 예시 (2D)transform.rotation = Quaterni.. 2025. 6. 9. Unity - 캐싱(Caching) +) FSM 패턴,GetComponent ,Distance 캐싱(Caching)이란? 자주 사용하는 데이터나 연산 결과를 한 번만 계산하고 저장해두었다가 다음에 또 필요할 때 다시 계산하지 않고 빠르게 꺼내 쓰는 기법이다. 간단한 비유캐싱 안하는 경우 : 매번 요리할 때마다 레시피책을 찾아서 펼쳐보기캐싱 하는 경우 : 자주 만드는 요리 레시피를 냉장고에 붙여두고 바로 보기 왜 필요할까? Unity는 매 프레임(초당 60~144번 이상) 빠르게 많은 계산을 해야 하는 실시간 게임 엔진이다. 아래와 같은 예시의 작업들을 매번 수행하면 성능 병목이 발생할 수 있다.1) GetComponent()로 컴포넌트 찾기 모든 컴포넌트를 순회하며 검색void Update(){ GetComponent().Play("Run");}2) Vector3.Distance()로 매 .. 2025. 6. 4. Unity - Unity에서 수학 개념을 이해해보자 1편 - 벡터,내적,외적 벡터(Vector)란?벡터는 크기와 방향을 동시에 가지는 수학적 개념이다. Unity에서의 쓰임오브젝트의 위치 방향, 속도 등을 표현할때 벡터를 사용한다. 오브젝트의 위치(Position) 벡터transform.position = new Vector3(0, 1, 2);방향(Direction) 벡터 어디를 바라보는지 알려주는 단위 벡터Vector3 forward = transform.forward;속도(Velocity) 벡터 방향과 속도를 가진 벡터로 표현되며 움직임을 구현할때 주로 사용한다.Vector3 velocity = new Vector3(1, 0, 0); // 오른쪽으로 1만큼 이동하는 속도transform.position += velocity * Time.deltaTime;벡터의 구성 요소크기(.. 2025. 5. 23. Unity - velocity vs addForce +) Velocity 덮어쓰기 , AddForce 무시 문제 들어가기 앞서 간단한 비유로 먼저 이해해보자velocity는 마치 누군가가 자동차를 강제로 시속 50km로 설정해버리는 것과 같다. 브레이크, 중력, 마찰 같은 물리 법칙은 전혀 무시되고 곧바로 그 속도로 움직인다. AddForce는 운전자가 엑셀을 밟아서 점점 시속 50km에 도달하는 것과 같다. 이 경우 중력, 마찰, 차량의 무게(질량)같은 물리 요소들이 모두 반영되어 자연스럽게 가속된다.Rigidbody.velocityRigidbody의 현재 속도를 직접 덮어써서 지정하는 Vector3이다. 물리 엔진 결과가 아니라 사용자가 이 속도로 움직여!라고 명령하는 값이다. velocity는 매 FixedUdpate마다 Rigidbody의 위치를 계산할 때 사용된다. 이 값을 덮어쓰면 기존에 적용하고 있던 .. 2025. 5. 22. 이전 1 2 3 4 5 ··· 91 다음 반응형