반응형

2025/04 14

프로그래머스 소수 찾기 (C#) [Lv. 2]

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 수를 strinf으로 입력 받을 때, 해당 수들을 조합해서 만들 수 있는 수 중에 소수인 것들의 개수를 구해주세요. (중복 조합 x) 풀이 방법해당 문제는 2개로 구분하여 풀이합니다. 1. 중복 없이 조합하기2. 소수인지 체크하기 우선 중복 없이 조합하는 방법을 소개하겠습니다.중복 없이 조합하는 방법public void DFS(string str = ""){ for (int i = 0; i DFS와 반복문을 조합하여 수를 조합합니다. public void DFS(bool[] visited, string str = ""){ for (int i =..

프로그래머스 야근지수 (C#) [Lv. 3]

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다.Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. ex) works = [4, 3, 3], k = 4works를 [2, 2, 2]로 만들어야 최소 야근 피로도가 나옵니다. 풀이 방법야근 피로도의 공식은 아래와 같습니다.works[0] ^ works + works[1..

퀘스트 시스템

퀘스트의 데이터를 의미하는 QuestDataSO 퀘스트 안의 작업을 의미하는 TaskDataSO - Quest Data SO 속성 소개Quest ID : 퀘스트 고유의 ID값Icon : UI에서 보여지는 이미지 (기획에 따라 삭제 가능)Quest Name : 퀘스트 이름Quest Description : 퀘스트 설명Tasks : 퀘스트안의 작업(TaskDataSO)를 List 형태로 관리Reward : 퀘스트 완료 후 받게될 보상Item Id : ListGold : intExp : intAcception Condition : 퀘스트를 진행하기 위한 선행 조건Pre Quest Id : ListRequired Item id : ListRequired Level : intUse Audo Complete : ..

Unity 2025.04.28

10816 숫자카드 (C#) [Silver IV]

10816번: 숫자 카드 2 들어가며이 문제는 숫자 카드를 몇개 가지고 있는지 찾는 문제입니다. 상근이가 가지고있는 숫자 카드의 최대 개수는 50만개,체크 해야할 숫자 카드의 최대 개수가 50만개이기 때문에 2중 for문을 사용하면 시간 초과가 발생합니다. 가장 빠르게 풀 수 있는 방법은 Dictionary를 통해 상근이가 가지고 있는 숫자 카드의 개수를 저장하는 것입니다.Dictionary cards = new Dictionary();cards[숫자 카드] += 1; 하지만, 해당 문제는 이진 탐색 문제이기에 이진 탐색 풀이 방법을 공유하겠습니다. 풀이 방법이진 탐색을 통해 상근이가 가지고 있는 숫자를 찾기 위해서는 우선, 상근이의 카드를 정렬 해줘야합니다.정렬된 카드들을 이진 탐색을 통해 위치를 ..

9663 N-Queen (C#) [Gold IV]

풀이 방법해당 문제는 완전 탐색을 통해 풀이해야 합니다.모든 경우의 수를 하나하나 탐색하여 퀸을 놓을 수 있는지 체크하고, 개수를 저장하고 출력하면 됩니다. 힌트 1퀸은 상, 하, 좌, 우로 이동할 수 있습니다.즉, 현재 놓으려는 위치의 Y값과, X값을 사용하는 다른 퀸이 존재한다면, 그 자리는 놓을 수 없는 자리입니다.그렇기에 Y값 하나에 1개씩, X값 하나에 1개씩 밖에 퀸을 둘 수가 없습니다. 힌트 2퀸은 대각선으로도 이동할 수 있습니다.즉 퀸A에 퀸B의 위치값을 뺄 때, 방향 벡터 X와 Y의 절대값이 같다면 대각선에 위치한다는 의미이기 때문에놓을 수 없는 경우의 수 입니다. 힌트 3최대 15개의 퀸을 15 * 15개의 체스판에 모두 배치하는 모든 경우의 수를 탐색할 때,반복문을 어떻게 배치해야할지..

TIL - Addressable 설계

개요기존의 Resource Manager가 Resources폴더가 아닌Addressable을 사용하는 형태로 변경됨게임 시작 시 필요한 데이터를 한번에 로딩 후 꺼내 쓰는 방식으로 활용 (로딩 창 필요)Addressable은 비동기 형태로 데이터를 불러오게 되지만 미리 불러온 후에 사용하기 때문에 ResourceManager 사용 방법은 기존과 동일파일 관리 방법을 변경할 예정Resources 폴더 완전 삭제동적으로 불러올 데이터 Addressable에 등록라벨로 구분하여 관리사용 방법1. Addressable Label로 데이터 등록 int testCount = 0; public void Init() { Managers.Resource.Addressables.Initi..

Unity 2025.04.23

백준 11729 하노이 탑 (Gold V) [C#]

11729번: 하노이 탑 이동 순서 문제세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다.한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다.쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다.이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다.아래 그림은 원판이 5개인 경우의 예시이다. 풀이 방법힌트1가장 아래의 원판을 3번째로 옮기려면 어떻게 해야할까?당연하게도 다른 모든 원판을 2번째로 옮겨야 한다. 즉, 가장 큰 원판을 제외한 다른 원판을 중간 지점으로 보내는 것이 핵심이..

백준 C# 속도 개선

최근 백준 C#과 관련해서 시간초과 이슈가 있는 것 같습니다.이전에 통과했던 코드도 최근에는 시간초과로 통과가 안된다는 사례도 있었습니다.이러한 상황에서 속도 개선하는 방법을 공유하고자 합니다. Console.WriteLine백준 알고리즘 문제를 풀다 보면 많은 양의 출력이 필요한 경우가 있습니다.Console.WriteLine()은 호출될 때마다 실제로 콘솔에 출력하는 I/O 작업을 수행합니다. I/O 작업은 메모리 접근에 비해 매우 느린 작업이며, 이를 반복적으로 수행하면 프로그램의 성능이 크게 저하되며 시간 초과의 이유가 됩니다. 이 때, 사용할 수 있는 방법이 StringBuilder입니다. StringBuilder문자열을 바로 출력 하는 것이 아니라 StringBuilder를 통해 문자열을 저장..

프로그래밍/C# 2025.04.21

Behavior Tree 이론

행동 트리 (Behavior Tree) 이해하기 행동 트리란 무엇인가? 행동 트리(Behavior Tree, BT)는 인공지능(AI)에서 캐릭터나 시스템의 행동을 모듈식으로 구성하고 제어하는 데 사용되는 강력한 도구입니다. 특히 게임 개발에서 NPC(Non-Player Character)의 복잡한 의사 결정을 체계적으로 구현하는 데 널리 사용됩니다. 트리는 계층 구조를 가지며, 각 노드는 특정 작업이나 제어 흐름을 나타냅니다. 실행은 루트 노드에서 시작하여 자식 노드로 전달되는 '틱(tick)' 신호를 통해 이루어집니다. 핵심 개념: 노드와 틱(Tick) 행동 트리의 모든 연산은 '틱'이라는 단위로 이루어집니다. 루트 ..

프로그래밍 2025.04.10
반응형