본문 바로가기

전체 글120

배열과 리스트를 정렬하는 방법 C# 에는 배열(Array)과 리스트(List)를 정렬할 수 있는 다양한 내장 메서드들이 제공됩니다.이번 글에서는 배열과 리스트, 그리고 사용자 정의 정렬까지 정리해보겠습니다. 배열에서의 정렬배열을 정렬할 때는 Array.Sort() 메서드를 사용합니다.int[] numbers = { 5, 2, 9, 1 };Array.Sort(numbers);// 출력: 1, 2, 5, 9Console.WriteLine(string.Join(", ", numbers)); • 아무 옵션 없이 쓰면 기본 오름차순으로 정렬됩니다.• 내부적으로는 퀵 정렬, 힙 정렬, 삽입 정렬 등을 데이터 양과 형식에 따라 자동으로 혼합 사용합니다. 내림차순 정렬은 어떻게?정렬 기준을 직접 지정하고 싶을 땐, Sort() 함수 괄호 안에.. 2025. 7. 10.
람다를 이용해 버블 정렬 구현하기 C# 에는 Array.Sort() 나 List.Sort() 같은 기본 정렬 함수가 제공되지만, 정렬 알고리즘을 직접 구현하면서 람다식이 얼마나 강력한 도구인지 체감해볼 수 있습니다. 이번 글에서는 람다식을 이용하여 유연한 방식의 버블 정렬을 직접 구현해보겠습니다. 버블 정렬이란?가장 간단한 정렬 알고리즘 중 하나로, 인접한 두 값을 비교해서 순서를 바꾸는 것을 반복합니다.int[] arr = { 5, 3, 8, 1 };for (int i = 0; i arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } }} 하지만 이 방법은 비교 방.. 2025. 7. 10.
C#에서 튜플(Tuple)이란? 튜플은 C# 7.0 부터 지원하는 여러 값 (최대 7개) 을 한 번에 묶어서 저장할 수 있는 구조입니다.최대 7개의 값을 다룰 수 있으며, 별도의 타입 정의 없이 간단하게 여러 값을 하나로 다룰 수 있다는 것이 특징입니다. ValueTuple 은 구조체 // 실제 소스 일부 (System.ValueTuple.cs)public struct ValueTuple{ public T1 Item1; public T2 Item2; // …} 코드에서 보면 알 수 있듯이, 내부는 단순한 구조체 입니다. 그럼 언제, 어떻게 쓰이는지 알아보겠습니다. 기본 사용법튜플은 직접 ValueTuple로 선언할 수도 있고, 간편하게 var를 사용할 수도 있습니다.// 1. 명시적 타입 지정ValueTuple stu.. 2025. 7. 9.
Unity 에서 Serializable 사용 예 Unity에서 사용자 정의 클래스나 구조체를 인스펙터에 보여주고 싶을 때 반드시 알아야 할 키워드가 바로 [System.Serializable]입니다. 이 키워드는 Unity의 직렬화(Serialization) 시스템에 해당 타입을 등록하겠다는 선언입니다. 언제 필요할까?Unity는 기본적으로 public 필드나 [SerializeField]가 붙은 필드만 인스펙터에 노출합니다. 그런데 그 필드가 클래스나 구조체일 경우, Unity는 내부 내용을 자동으로 보여주지 않습니다. 이때 [System.Serializable]이 있어야 내부 값들도 인스펙터에서 펼쳐서 볼 수 있게 됩니다. 예제 코드using System;[Serializable]public class DropInfo{ public float.. 2025. 7. 3.
오브젝트를 태그로 찾고자 할 때 : FindWithTag() FindWithTag() 은 유니티에서 특정 태그를 가진 오브젝트를 찾을 때, 사용하는 함수입니다.그런데, FindGameObjectWithTag() 라는 함수도 존재합니다.결론부터 말씀드리자면, 두 함수는 결국 같은 기능을 합니다. 내부 구현public static GameObject FindWithTag(string tag){ return FindGameObjectWithTag(tag);} Unity 엔진 내부에서 FindWithTag()는 결국 FindGameObjectWithTag()를 호출합니다.그리고 이 FindGameObjectWithTag()는 unsafe 키워드가 붙은, Unity의 엔진 내부 함수입니다. 즉, FindGameObjectWithTag()는 존재하긴 하지만 문서화되지.. 2025. 7. 2.
유니티에서 yield break 와 코루틴에서 제거되는 시점 Unity에서 코루틴은 IEnumerator 객체를 통해 실행되며, Unity는 이 객체들을 내부적으로 리스트에 등록하여 매 프레임마다 검사하고 실행 조건이 충족되면 이어서 실행합니다. yield break 란?yield break는 코루틴 내부에서 즉시 실행을 종료하는 명령어입니다.이것이 실행되면 Unity는 해당 코루틴을 더 이상 실행하지 않도록 처리하며, 코루틴 리스트에서 안전하게 제거합니다.IEnumerator MyRoutine(){ Debug.Log("Start"); if (SomethingWrong()) { Debug.Log("문제 발생 → 코루틴 중단"); yield break; } yield return new WaitForSeconds.. 2025. 7. 2.