
아래는 프로그래머스에서 제공한 문제 설명입니다.다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다.(), \[], {} 는 모두 올바른 괄호 문자열입니다.만약 A가 올바른 괄호 문자열이라면, (A), \[A], {A} 도 올바른 괄호 문자열입니다. 예를 들

Unity에서 여러 개의 탭 버튼을 생성하고, 각각 클릭했을 때 해당 인덱스의 탭으로 전환되도록 코드를 작성했다.문제는, 버튼을 클릭했을 때 항상 마지막 인덱스 (tabButtons.Length)가 전달되어모든 버튼이 같은 탭을 여는 현상이 발생했다.C위 코드에서 i는

아래는 프로그래머스에서 제공한 문제 설명입니다.주차장의 요금표와 차량의 입/출차 기록이 주어졌을 때, 차량별로 주차 요금을 계산하세요.입차 후 출차 내역이 없으면 23:59에 출차된 것으로 간주합니다.누적 주차 시간이 기본 시간 이하인 경우: 기본 요금만 청구합니다.초

이번 3D 방치형 프로젝트에 몬스터와 플레이어 AI에 상태 패턴을 적용하여 FSM(Finite State Machine)을 간단하게 구현해보았다.객체의 상태에 따라 행위가 달라지는 상황에서, 각 상태를 클래스로 분리하고 상태 전이를 명확하게 만드는 패턴FSM은 게임 A

프로그래밍을 잘하고 싶다면, 자료구조는 선택이 아니라 필수많은 사람들이 List, Dictionary만 쓰면서 그 내부 동작이나 다른 대안 구조를 잘 모르는 경우가 많다.특히 게임 개발이나 알고리즘 문제 풀이, 실무 최적화에서 자료구조 선택은 성능과 직결된다.오늘은 주

아래는 프로그래머스에서 제공한 문제 설명입니다.XYZ 마트는 일정한 금액을 지불하면 10일 동안 회원 자격을 부여합니다. XYZ 마트에서는 회원을 대상으로 매일 한 가지 제품을 할인하는 행사를 합니다. 할인하는 제품은 하루에 하나씩만 구매할 수 있습니다. 알뜰한 정현이

아래는 프로그래머스에서 제공한 문제 설명입니다.철호는 수열을 가지고 놀기 좋아합니다. 어느 날 철호는 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 일반적인 수열에서 처음과 끝

효율적인 Unity 프로젝트 구조 설계에 대해 학습하고, 정리해보았다.특히 유지보수성과 성능, 확장성 관점에서 중요한 요소들을 중심으로 정리하였다.자동완성 지원으로 오타를 줄이고 가독성을 향상상수 값보다 타입 안정성 확보코드 작성 시 값의 명확한 의미 부여값 타입으로

아래는 프로그래머스에서 제공한 문제 설명입니다.두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는

아래는 프로그래머스에서 제공한 문제 설명입니다.효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는(1칸, 1칸, 1칸, 1칸)(1칸, 2칸, 1칸)(1칸, 1칸, 2칸)(2칸, 1칸, 1칸)(

오늘은 객체지향 설계의 핵심 원칙인 SOLID에 대해 공부했고, 이를 게임 개발 관점에서 어떻게 적용할 수 있는지도 함께 정리해봤다.이 원칙들은 Unity 같은 엔진에서 개발할 때도 유지보수성과 확장성을 높이기 위해 매우 중요하다.객체지향 설계의 5가지 핵심원칙하나의

오늘은 현재 진행중인 Unity 프로젝트에서 구성한 Player 시스템 전체 구조를 정리해보았다. Player 컴포넌트를 중심으로 각각의 기능을 전담하는 모듈을 컴포넌트 기반 설계로 분리하여 유지보수성과 확장성을 높였다.모든 플레이어 관련 로직은 Player 스크립트가

플레이어가 조준 시 마우스 방향에 따라 투척 궤도(trajectory) 를 시각적으로 보여주는 시스템 구현궤도 계산에 물리 엔진을 고려한 포물선 적용마우스 위치를 기반으로 45도 위쪽으로 향하는 투척 방향 계산 로직 구현매 프레임마다 pointCount 만큼의 궤도 점

게임 개발에서 Manager 클래스는 여러 시스템과 객체들을 조율하는 핵심 역할을 수행한다.하지만 "매니저는 관리만 하고, 직접 일하지 않는다"는 원칙을 명확히 이해하는 것이 중요하다.매니저는 실제 기능을 수행하기보다는, 객체나 시스템 간의 연결을 관리하고 흐름을 조율

3D 공간에서 마우스 위치를 기준으로 캐릭터 회전 방향을 결정하고 싶을 때,마우스 포지션을 월드 좌표의 평면상 위치로 변환하는 것이 필요하다.이때, Unity의 Plane과 Ray를 활용하여 구현 할 수 있다.이 코드는 y = 0에 해당하는 가상의 바닥 평면을 생성한다

게임 데이터를 설계할 때는 불변 데이터와 변동 데이터를 구분하는 것이 중요하다.기획자 중심의 콘텐츠 제작을 위해 데이터 수정이 쉽고 직관적이어야 하며, 보통 다음과 같은 형태로 데이터를 관리한다.기획자가 엑셀로 작성한 데이터를 CSV로 저장 후 Unity에서 파싱가장

게임의 다양한 설정 값이나 로직 데이터를 코드에 직접 하드코딩하지 않고,JSON, CSV, ScriptableObject 등의 외부 데이터로 분리하여 처리하는 설계 방식이다.빠른 수정과 반복 테스트 용이→ 코드 수정 없이 밸런스나 콘텐츠 수치를 변경할 수 있어 작업 속

아래는 프로그래머스에서 제공한 문제 설명입니다.경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다

게임 플레이 도중 숫자 키(1~0)를 이용해 슬롯을 선택하고, 선택된 아이템을 사용할 수 있는 툴바 시스템을 구현하는 것이 목표였다.아이템은 포션과 같은 소비형 아이템과 장비형 아이템으로 나뉘며, 툴바 슬롯에 등록된 아이템을 사용하면 해당 효과가 적용되도록 만들었다.I

아래는 프로그래머스에서 제공한 문제 설명입니다.초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.prices의 각 가격은 1 이상 10,000 이하