OOP란?OOP는 소프트웨어 설계 패러다임 중 하나로, 데이터를 객체(Object)라는 단위로 묶고, 이 객체들이 데이터를 처리하는 방식을 정의한다.주요 특징들은 다음과 같다.I. 캡슐화(Encapsulation)캡슐화는 데이터와 메서드를 객체 안에 숨겨 외부 접근을 제한하고, 데이터를 보호하는 특징을 가진다.외부에서는 클래스에서 제공하는 공용(public) 인터페이스에만 접근할 수 있다.이 방식은 다음과 같은 장점을 지닌다. - 데이터 무결성 : 잘못된 접근이다 수정으로부터 데이터를 보호한다. - 코드 변경 용이성: 내부 구현을 변경하더라도 외부에 영향을 최소화할 수 있다. 다음은 캡슐화의 예제이다.#include using namespace std;class BankAccount {private: ..
전체 글
Hello World!
마우스 우클릭 이동 구현using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.AI;using UnityEngine.TextCore.Text;public class ClickMove : MonoBehaviour{ //마우스의 위치를 월드 좌표계로 표시하기 위해 선언 private new Camera camera; private NavMeshAgent agent; private Animator anim; //캐릭터가 움직이고 있는지 확인 private bool isMove; //캐릭터 목표 위치 기억 private Vector3 destination; ..

Coroutine먼저 Unity에서 Update() 메소드는 매 프레임마다 호출해 변화를 일으키기 위해 사용하고는 한다.60fps라면 1초에 60번 호출이 된다. 그런데 만일, 5초동안 지연을 시켜야하는 상황이 발생 한다면 어떻게 될까? 단순하게 Update() 메소드를 300번 (5 * 60) 호출하면 될 것이다.하지만 이러한 딜레이가 발생하는 상황을 모두 Update() 구문에 정의하게 되면 사용자의 환경에 따라 프레임 드랍을 발생시킬 수 있다. 이를 개선하기 위해 Coroutine을 사용하면 Update() 함수를 굳이 300번이나 호출하지 않고도시간을 효율적으로 지연시킬 수 있다.Coroutine 사용 예제먼저 Coroutine을 사용하지 않은 예제를 살펴보겠다.using UnityEngine;..

레파지토리를 클론 후 Git Bash 창을 통해커맨드를 입력하여 깃허브에 파일 및 폴더를 업로드 하는 방법입니다. 1. Code 버튼 누르기레파지토리에서 우측 상단의 Code 버튼을 누르고 HTTPS 주소를 복사합니다. 2. 터미널(Bash) 창에서 클론클론하려는 디렉터리로 가서 Bash를 열고git clone 커맨드를 입력 후 실행합니다.터미널에서 우클릭으로 붙여넣을 수 있습니다. 그러면 지정된 디렉토리에 클론된 폴더가 생성됩니다.3. 폴더 생성클론된 폴더로 들어가서다음 명령어를 입력 후 실행합니다. mkdir 그냥 폴더 안에서 새 폴더 만들어도 무방합니다. 4. 폴더에 파일 업로드폴더에 작성한 소스코드 파일을 넣습니다.저는 보통 Visual Studio에서 작성한 코드파일을 붙여넣습니다. 5. 추..

https://www.acmicpc.net/problem/5430함수 R : 배열에 있는 수를 뒤집는다. 처음에는 배열을 직접 뒤집는 함수를 구현했으나, 시간이 너무 오래 걸려bool을 사용해 함수를 뒤집었다고 인식하게 하였다. (Reverse = false : 뒤집지 않음, Reverse = true : 뒤집음) 함수 D : 배열의 첫번쨰 수를 제거한다. 즉, Reverse = false인 경우 배열의 첫번쨰 수를 제거(front) 하고, Reverse = true인 경우 배열의 마지막 수를 제거한다(end) 배열이 비었을 떄 D를 사용 시 error를 출력한다. 여기까지는 배열만 입력해서 출력하는 간단한 문제인 줄 알았으나,배열을 대괄호 안에 쉼표로 구분하여 입력해야 한다. getline과 s..

https://www.acmicpc.net/problem/7662문제를 정리하자면,1. 이중 우선순위 큐: 데이터의 삽입과 삭제가 가능한 자료 구조로, 삭제할 때 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터를 삭제할 수 있는 이중 우선순위 큐를 구현한다. 2. 명령어:- I n : 정수 n을 큐에 삽입하는 연산- D 1: 큐에서 최댓값을 삭제하는 연산- D -1: 큐에서 최솟값을 삭제하는 연산 3. 입력과 출력:I. 첫 번째 줄에 테스트 데이터의 수를 나타내는 정수 T, 각 테스트 데이터는 k개의 연산으로 구성된다.II. 각 연산은 문자 ('D' 또는 'I') 와 정수 n으로 이루어져 있다.III. 각 테스트 데이터에 대해, 모든 연산을 처리한 후 큐에 남아 있는 값 중 최댓값과 최솟값을 출력IV..

https://www.acmicpc.net/problem/10026구역을 나누는 문제는 보통 BFS나 DFS로 해결할 수 있다. 필자는 DFS를 이용하였다. 먼저 구역을 나누는 함수를 구현 후, 색약이 바라보는 구역을 구현하기 위해G를 R로 변환하는 함수를 구현한다. 코드#include #include using namespace std;const int dx[] = { -1, 1, 0, 0 };const int dy[] = { 0, 0, -1, 1 };void dfs(vector>& grid, vector>& visited, int x, int y, char color){ visited[x][y] = true; // 방문 위치를 방문했다고 저장 for (int i = 0; i = 0 &&..

https://www.acmicpc.net/problem/30804주어진 문제는 막대에 꽂힌 과일들 중에서 두 종류 이하의 과일만 남도록 앞쪽과 뒤쪽에서 몇 개의 과일을 빼내어 과일의개수가 가장 많은 경우를 찾는 것이다. 조건:1. 과일의 총 개수 N이 주어짐 2. 과일의 종류는 1부터 9까지이며, 각 과일은 S1,S2,....,SN과 같이 나열된다. 3. 앞에서 a개 뒤에서 b개의 과일을 뺼 수 있다. 4. 두 종류 이하의 과일만 남기도록 하여, 남은 과일의 개수가 최대가 되도록 해야 한다. 이 문제를 어떻게 접근해야 할까?접근 방법을 두 케이스로 나눠봤다. 접근 방법:1. 빈도수 카운트:- 각 과일의 빈도 수를 카운트하여, 현재 과일 종류를 추적- 빈도 수를 관리하여, 두 종류를 초과하면 ..

E0266 에러가 발생한 예제 일부분원인원인을 찾아보니 함수 이름 중 count 라는 함수 이름이 존재한다는 것을 알게 되었다.함수 이름과 동일한 변수 이름을 설정하고 이를 선언했을 때 같은 이름으로 재정의 내리기에이러한 에러가 나타난다고 한다. 해결 방법다양한 해결 방법이 있었지만, 나는 변수 이름을 바꿔주어 이 문제를 해결하였다.(변수 이름과 함수 이름이 같기에 에러가 난다고 판단아였기에, 변수 이름만 바꾸면 쉽게 해결될 문제라고 판단) 내가 생각했던 대로 count -> cnt로 변수 이름을 변경 하였더니 별 다른 문제 없이 해결되었다.

게임 프로그래밍에서 자료 구조는 매우 중요하며 다양한 방식으로 활용된다.게임의 성능, 메모리 사용, 기능 구현 등에 직접적인 영향을 미치기 때문에 효율적인 자료 구조 선택과 구현이 필요하다. 아래는 게임 프로그래밍에서 자주 사용하는 주요 자료 구조와 그 응용에 대한 설명이다. I. 배열(Array)정의 : 동일한 타입의 요소를 연속적으로 저장하는 자료 구조응용 : 게임 내 객체들의 위치, 상태, 속성 등을 저장, 예를 들어, 게임 맵의 타일 정보, 캐릭터의 애니메이션 프레임 등을 배열에 저장한다. II. 연결 리스트(Linked List)정의 : 각 요소가 다음 요소에 대한 포인터를 가지고 있어 동적으로 요소를 추가하거나 제거할 수 있는 자료 구조응용 : 동적 데이터 목록을 다루는 데 유용. 예를 들어 ..