전체 글

전체 글

    역추적 알고리즘 : Backtracking

    이 알고리즘은 모든 소프트웨어 솔루션의 논리적인 구조를 제공하는 핵심입니다. 역추적은 매력적인 알고리즘 기술 중 하나로 다양한 응용 분야가 있습니다. 오늘은 역추적의 개념과 용도를 살펴보며, 전형적인 구현 예제를 살펴보겠습니다. 백트래킹이란? 역추적은 문제에 대한 솔루션을 찾기 위해 가능한 모든 옵션을 탐색한 다음 막다른 골목에 도달하거나 현재 경로가 더 이상 유효한 솔루션을 생성할 수 없을 때 "역추적"하거나 후퇴하는 일반적인 알고리즘 기술입니다. 이 기술은 일반적으로 솔루션에 일련의 결정이 필요하고 모든 결정이 솔루션으로 이어지는 것은 아닐 수 있는 문제를 해결하는 데 사용됩니다. 알고리즘은 시도한 옵션을 추적하고 이 경로가 유효한 솔루션으로 이어질 수 없다고 판단하는 즉시 경로를 포기합니다. 역추적..

    C# 힙(Heap)이란?

    소개 C#에서 힙은 우선순위 큐(priority queue)를 구현하는 데 사용되는 자료구조 중 하나입니다. 우선순위 큐는 요소들이 들어온 순서와 상관없이 우선순위에 따라 처리해야 하는 경우에 유용하게 사용됩니다. 힙은 배열(array)을 기반으로 하며, 다양한 그래프 알고리즘에서 최단 경로를 찾는 데 활용됩니다. 이번 글에서는 C# 힙(heap)에 대한 정의, 구현 방법, 연산, 활용 등에 대해 자세히 살펴보겠습니다. 힙이란? 힙은 이진 트리(binary tree)를 기반으로 한 자료구조입니다. 이진 트리에서는 각 노드가 최대 두 개의 자식 노드를 가질 수 있지만, 힙에서는 각 노드가 최대 두 개의 자식 노드를 가지며, 트리의 루트 노드는 언제나 최소값 또는 최대값을 가집니다. 최소 힙에서는 루트 노드..

    Unity Package-lock.json 파일이란 무엇인가?

    Unity에서는 패키지 관리를 위해 Package Manager를 제공합니다. Unity Package Manager는 프로젝트에 필요한 패키지를 쉽게 추가하고 관리할 수 있도록 도와주는 도구입니다. 이 Package Manager를 사용하면 Unity에서 제공하는 공식 패키지 뿐만 아니라 유저가 만든 패키지들도 쉽게 추가하고 관리할 수 있습니다. 그러나 패키지 관리를 위해서는 Unity 프로젝트 내부에 package-lock.json 파일이 생성됩니다. 이 파일은 패키지의 버전, 의존성 등을 관리하는 파일입니다. 이번 글에서는 package-lock.json 파일에 대해 자세히 알아보고 패키지 관리에 대한 이해를 높여보도록 하겠습니다. 1. package-lock.json 파일이란 무엇인가? packa..

    Unity Animator의 Any State 기능이란?

    Unity Animator 컴포넌트는 게임 오브젝트에 애니메이션을 적용하는 데 사용됩니다. Animator 컴포넌트는 매우 강력한 기능을 가지고 있으며, 애니메이션을 다루는 데 있어서 매우 중요한 역할을 합니다. 그 중 Any State는 Animator에서 매우 유용한 기능 중 하나입니다. 이번 글에서는 Unity Animator의 Any State 기능에 대해 자세하게 설명하겠습니다. Any State란? Any State는 Animator에서 사용할 수 있는 State 중 하나입니다. 이 State는 다른 State로의 전이(Transition)를 위한 조건을 검사하지 않고, 언제든지 전이가 가능하도록 합니다. 이 State는 다른 State와 연결되어 있지 않기 때문에, 어떤 State에서든 An..

    파이썬 디스크립터란?

    파이썬에서 디스크립터는 클래스를 통해 속성(attribute) 접근을 제어하기 위한 프로토콜(Protocol)입니다. 디스크립터는 클래스 내에 get, set, delete 메소드를 구현하여, 속성의 값을 읽거나 쓰거나 삭제하기 전에 추가적인 로직을 수행할 수 있도록 합니다. 디스크립터의 종류 파이썬에서는 디스크립터를 세 가지 종류로 구분합니다. 각각은 다음과 같습니다. 데이터 디스크립터(Data Descriptor) 비데이터 디스크립터(Non-Data Descriptor) 클래스 디스크립터(Class Descriptor) 1. 데이터 디스크립터(Data Descriptor) 데이터 디스크립터는 __get__과 set 메소드를 모두 구현한 디스크립터입니다. 이 디스크립터를 사용하면 속성의 값을 읽거나 쓸..

    파이썬 함수에 대한 4가지 고급 트릭

    파이썬은 조건문, 반복문, 예외처리를 이용하여 프로그래밍을 할 수 있습니다. 이 글에서는 파이썬에서 조건문, 반복문, 예외처리를 사용하는 방법에 대해 자세히 알아보겠습니다. 1. 키워드 아규먼트 강제하기 키워드 인수에는 인자를 순서에 따라 넘겨줘야 하는 불편함을 없애주고, 명명된 인수를 사용함으로써 가독성을 높이는 장점이 있습니다. 파이썬에서는 PEP 3202에서 설명하는 것처럼 키워드 아규먼트를 강제할 수 있습니다. 이에 대한 예시는 다음과 같습니다. def f(*, a, b): print(a, b) f(1, 2) # TypeError: f() takes 0 positional arguments but 2 were given f(a=1, b=2) # 1 2 2. 함수 언패킹을 위해 * 와 ** 사용하기..

    C# Local Function

    소개 C# Local Function은 C# 7.0 이후로 추가된 기능 중 하나입니다. Local Function은 메서드 내에서 정의되는 함수로, 해당 메서드 내에서만 사용됩니다. 이번 글에서는 C# Local Function에 대해 자세히 알아보겠습니다. Local Function이란? Local Function은 메서드 내에서 정의되는 함수입니다. Local Function은 해당 메서드 내에서만 사용될 수 있으며, 외부에서는 접근할 수 없습니다. Local Function은 메서드 내에서 중복되는 코드를 줄이고, 메서드의 가독성을 높이는 데 매우 유용합니다. Local Function의 예 다음은 Local Function의 간단한 예입니다. public void PrintNames(List na..

    파이썬에서 알아두면 유용한 기능들

    1. Function 속성(attribute) 클래스 및 개체의 속성을 설정하는 방법과 유사하게 함수에도 속성을 설정할 수 있습니다. def func(x): intermediate_var = x**2 + x + 1 if intermediate_var % 2: y = intermediate_var ** 3 else: y = intermediate_var **3 + 1 # setting attributes here func.optional_return = intermediate_var func.is_awesome = 'Yes, my function is awesome.' return y y = func(3) print('Final answer is', y) # Accessing function attribu..