개발일지
article thumbnail
C++ 포인터
프로그래밍/C++ 2024. 1. 20. 00:33

int n = 100; 우리는 어떤 수나 문자를 저장하기 위해서 변수를 사용한다. 그러나 이 변수는 우리의 컴퓨터의 메모리에 어느 위치에 대한 이름인지를 나타낸 것이다. 친구랑 서울시청에서 모이기로 하였다. 서울 시청의 주소는 서울특별시 중구 세종대로 110이다. 우리는 후자와 전자로 말하여도 어디있는지 알 수 있지만 컴퓨터는 주소를 알아야 그 장소를 찾을 수 있다. 그래서 이 n이라는 변수는 100이 저장되어있는 어느 메모리의 이름인 것이다. 포인터(Pointer) int* n; int a = 10; n = &a; cout

[C++]그리디 알고리즘(Greedy Algorithm)
프로그래밍/C++ 2023. 12. 18. 15:13

개념 그리디 알고리즘은 말 그대로그리디 알고리즘은 각 단계에서 지금 당장 가장 좋아 보이는 선택을 하는 알고리즘이다. 매 순간 최선의 선택을 통해 전체적인 최적해를 찾는 방법으로 사용됩니다. 이렇게 지금 당장 좋아보이는 선택만 하다 보니 항상 최적의 선택을 할순 없다. 예제(동전 0) 그리디 알고리즘은 항상 최적해를 찾는 것을 보장하지 않기 때문에 어떤 경우에는 최적해가 아닌 해를 반환할 수 있다. 이를 설명하기 위해 거스름돈 문제를 약간 변형한 예제를 살펴보자. https://www.acmicpc.net/problem/11047 문제 가게에서 물건을 샀을 때, 손님이 지불한 금액보다 적은 동전의 개수로 거스름돈을 주려고 한다. 어떻게 하면 손님에게 줄 동전의 개수를 최소화할 수 있을까? 입력 첫째 줄에..

[프로그래머스/C++] 네트워크
프로그래밍/C++ 2023. 12. 4. 17:29

https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가..

[프로그래머스/C++] 신고 결과 받기
프로그래밍/C++ 2023. 11. 22. 23:22

https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. • 각 유저는 한번에 한 한명의 유저를 신고할 수 있음. • 신고 횟수제한은 없음. • 동일한 유저에 대한 신고 횟수는 1회로 처리. • k번 이상 신고된 유저는 게시판 이용 정지, 해당 유저를 신고한 유저들에게 정지 메일 발송. • 유저가 ..

article thumbnail
[알고리즘/C++] 이진 탐색 트리 (Binary Search Tree, BST)
프로그래밍/C++ 2023. 11. 8. 14:49

이진 탐색 트리 (Binary Search Tree, BST)란? 이진 탐색 트리(BST)는 중요한 데이터 구조 중 하나로, 데이터를 효과적으로 저장하고 검색하는 데 사용된다. 이진 구조 BST는 모든 노드가 최대 두 개의 자식 노드를 가지는 이진 트리다. 각 노드는 최대 두 개의 하위 노드를 가질 수 있으며, 하위 노드는 왼쪽 자식 노드와 오른쪽 자식 노드로 구분된다. 정렬된 순서 BST는 중요한 특징 중 하나는 모든 노드의 왼쪽 하위 트리에는 현재 노드보다 작은 값의 노드만 포함되고, 모든 오른쪽 하위 트리에는 현재 노드보다 큰 값의 노드만 포함된다는 것입니다. 이러한 특성 덕분에 BST의 모든 노드는 정렬된 순서로 구성되어 있다. 추가 및 삭제 BST에 데이터를 추가하거나 삭제하는 작업도 효율적으로..

article thumbnail
[Unity] UI Toolkit 커스텀 토글
프로그래밍/UNITY 2023. 10. 24. 23:27

UI ToolKit을 활용하여 UI를 만들다 보면 유니티에서 제공하는 여러 에셋들을 사용하게 된다. 하지만 이 에셋들을 기본기능만 하기 때문에 어딘가 조금 밋밋한느낌이 난다. 그래서 그 에셋을 수정하려고 하면 수정할 수 없게 막혀있다. 하지만 UXML을 통해 토글을 제정의할 수 있다. UXML (Unity Extensible Markup Language) 일단 토글을 고칠려면 막혀있을것이다. 그래서 토글을 UXML을 통해 새로운 요소를 정의 해야 된다. 그리기 위해 일단 SlideToggle이라는 풀더(정리를 위)를 만들고 그 안에 SlideToggle라는 스크립트를 만들자. UXML UXML(Unity Extensible Markup Language) 파일은 사용자 인터페이스의 구조를 정의하는 텍스트 ..

article thumbnail
[Algorithm] DFS와 BFS
프로그래밍/C++ 2023. 10. 11. 14:07

그래프 탐색 그래프 탐색은 그래프(Graph)라는 자료 구조에서 특정한 목적을 가지고 노드(Node)나 정점(Vertex)을 탐색하거나 찾는 작업을 의미합니다. 그래프는 여러 개의 노드와 이를 연결하는 간선(Edge)으로 구성되며, 다양한 형태의 데이터나 객체 간의 관계를 모델링할 때 사용된다. 그중 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS)가 대표적이다. 깊이 우선 탐색(DFS) 깊이 우선 탐색(DFS)은 그래프의 모든 노드를 방문하고자 할 때 사용되는 알고리즘 중 하나다. DFS는 스택(stack) 자료구조를 사용하여 구현하며, 더 이상 진행할 수 없을 때까지 한 경로를 탐색한 후, 다른 경로로 이동하여 탐색을 계속한다. 동작원리 시작 노드를 스택에 넣고 방문 표시를 합니다. 스택이 빌 때까..

article thumbnail
[Unity] Timeline
프로그래밍/UNITY 2023. 8. 5. 01:07

TIMELINE Unity Timeline은 Unity의 편집기에서 사용할 수 있는 시간 기반 편집 도구이다. 이를 통해 애니메이션, 사운드, 이펙트 등 게임 개발에 필요한 다양한 이벤트를 시각적으로 조정하고 편집할 수 있다. Timeline은 타임라인 상에 존재하는 트랙과 키 프레임으로 구성되며, 시간에 따라 이벤트가 발생하고 조정될 수 있다. #추가 방법 빈 오브젝트 생성 후 Window - Sequencing - Timeline - Create를 하여 생성하면 Playable Director컴퍼넌트가 추가된다. #Playable Director Playable - 실행시킬 Timeline asset Update Method - 타임라인 인스턴스의 타이밍을 업데이트 하는 방식 DSP:정확한 오디오 샘..