전체 글 17

맨해튼 거리(Manhattan Distance)

맨해튼 거리란?맨해튼 거리는 두 점 사이의 가로와 세로 이동 거리만을 고려해 계산하는 방식이다.도시 블록처럼 격자 구조에서 직선이 아닌, “블록 따라 이동하는 거리”를 수학적으로 표현한 개념이다. 공식 표현두 점 A(x₁, y₁), B(x₂, y₂)가 있을 때: 맨해튼 거리 = |x₁ − x₂| + |y₁ − y₂| 즉, x 좌표 차이의 절대값과 y 좌표 차이의 절대값을 더해 거리를 구한다. 예를 들어, A(2, 3) → B(5, 1)인 경우,|2 − 5| = 3 (가로 이동)|3 − 1| = 2 (세로 이동)총 거리 = 3 + 2 = 5맨허튼 거리는 게임 (타일 기반 거리)와 알고리즘 (휴리스틱, 탐색)에 주로 사용된다.#include #include using namespace std;int main..

C++/알고리즘 2025.08.22

소수 구하기

소수란?소수는 1과 자기 자신만을 약수로 가지는 수를 의미한다.예를 들어 7의 약수는 1과 7뿐이므로 7은 소수이다.반면 8은 1, 2, 4, 8을 약수로 가지므로 소수가 아니다.소수를 구하는 방법1. 직접 나눗셈 (시간 복잡도: O(N))2부터 N-1까지 모든 수로 나누어보아어떤 수로도 나누어떨어지지 않으면 소수라고 판단할 수 있다.하지만 수가 커질수록 연산량이 많아지는 비효율적인 방법이다.#include using namespace std;int main(){ int n; cin >>n; if (n 2. 제곱근까지만 나눗셈 (시간 복잡도: O(√N))소수가 아닌 수는 두 수의 곱으로 표현되는 합성수다.즉, N = a × b라고 하면, a와 b는 모두 1과 N 사이의 자연수이고a와 b가 모두 √N보다 ..

C++/알고리즘 2025.07.16

5주차 구조체와 함수(24.12.31)

5-1 구조체 선언과 객체 생성구조체 선언 Type1struct Score{ const char* strName; int nKor; int nEng; int nMath; double fAverage;};int main(){ struct Score Student1; struct Score* pStudent2 = new struct Score; //정적 개체 사용 Student1.strName = "KsKim"; Student1.nMath = 95; Student1.nKor = 85; Student1.nEng = 75; //동적 개체 사용 pStudent2->strName = "UsChoi"; pStudent2->nMath = 100; pStudent2->nKor = 80; pStudent2->nEng = ..

4주차 pointer와 배열(24.12.30)

4-1 pointer와 참조자&연산자의 4가지 기능주소 연산자 : 변수 데이터가 저장된 메모리 주소(& 변수명)참조자 : 실제 변수이름 대신에 또 다른 이름 선언, 같은 위치의 메모리 위치 참조int a = 10; int &b = a; //a와 b의 값은 동일한 10bit연산(AND) : &논리연산(AND) : &&참조자, pointer, 배열참조자 : 기 선언된 변수의 또 다른 이름& 기호 사용둘 중 어느 하나라도 데이터가 변하면 동시에 변함pointer : 데이터가 저장된 메모리 주소*기호 사용메모리 주소가 같으면, 같은 주소를 지칭하는 변수의 데이터는 동시에 변함배열 : 같은 이름을 갖는 여러 개의 변수를 하나로 통합한 묶음pointer의 선언 기본형식int main(){ int nData = 10..

3주차 조건문과 반복문(24.12.27)

3-1 제어문(if-else, switch-case)if-else 조건문int main(){ int nA, nB, nC; cout > nA; cout 0) { nB = nA + 10; cout 출력값 switch-case 조건문int main(){ int nScore; char chLevel; cout > nScore; cout = 90) chLevel = 'A'; else if (nScore >= 80) chLevel = 'B'; else if (nScore >= 70) chLevel = 'C'; else if (nScore >= 60) chLevel = 'D'; else chLevel = 'C'; cout 출력값int main(){ int nNu..

2주차 데이터 처리와 연산(24.12.26)

2-1 데이터 입력을 위한 cin과 문자열 기본 개념scanf를 사용한 함수 이용 데이터 입력#include scanf(" 형식1 형식2 ....", &변수1, &변수2 ...);Visual Studio에서 scanf를 사용하려면 아래의 코드를 입력해야한다.#define _CRT_SECURE_NO_WARNINGSint main(){ int nX, nY; char chData; char strData[6]; printf(" 정수와 문자, 문자열을 입력하세요. \\n"); scanf("%d %d %c %s", &nX, &nY, &chData, &strData); printf("정수1 = %d, 정수2 = %d, 문자 = %c, 문자열 = %s \\n",..

1주차 과목소개와 프로그래밍 언어 구성 요소(24.12.25)

1-1 언어의 특징C++언어 소개1972년, 미국의 벨 연구소에서 시스템 프로그래머인 Dennis Ritchie가 C언어를 개발C언어는 하드웨어를 직접 제어 장점으로 사용자가 급속히 증가복잡한 프로그램에서 오류를 검출이 난해Bjarne Stroustrup가 구조체를 확장하여 class 도입하여 이 문제를 해결C++언어 구성C언어의 절차적 프로그래밍class로 기반으로 하는 객체지향 프로그래밍템플릿으로 대표하는 일반화 프로그래밍C언어의 특징프로그램 명령이 순서에 따라 절차적으로 동작구조체와 함수 등을 포함하고 있어서 프로그램을 구현하기 수월고급 프로그램에서 실제로 동작하는 코드하드웨어 직접 제어Window, Linux 등 운영체제 OS에서 동작포인터 기능으로 대용량 데이터 처리에서 효율적인 메모리 관리 C..

유니티 - 유한 상태 머신(FSM)

상태패턴(State Pattern) 이란?상태패턴은 객체의 상태를 클래스로 분리하고, 상태에 따라 다른 동작을 수행하게 만드는 디자인 패턴이다.쉽게 말해, if-else 나 switch 로 상태를 구분하는 대신, 각 상태를 클래스로 만들어서 상태 자체가 행동을 가지게 만드는 방식이다.public interface IState{ void Enter(); void HandleInput(); void Update(); void PhysicsUpdate(); void Exit();}이런 식으로 상태 인터페이스를 만들고 각 상태마다 이걸 구현하면 훨씬 유연하게 코드를 짤 수 있다. 유한 상태 머신(Finite State Machine)이란?FSM은 유한한 수의 상태들을 가진 시스템이다...

유니티 2025.04.17

리눅스 - 디렉터리 구조와 기본 명령어

리눅스 디렉터리 구조와 기본 명령어 사용법리눅스를 사용할 때 알아야 할 기본적인 디렉터리 구조와 명령어들을 정리해봤다.리눅스 디렉터리 구조리눅스의 디렉터리 구조는 트리 구조로 되어 있다. 여러 디스크가 있을 경우, 하나의 디렉터리 안에 마운트된다. 리눅스의 주요 디렉터리는 다음과 같다.1. /bin - 필수 실행 파일시스템에서 중요한 명령어 실행 파일들이 위치한다. 예를 들어 ls, cp, mv 같은 명령어들이 이곳에 있다.2. /dev - 디바이스 파일하드웨어 장치와 상호작용을 위한 특수 파일들이 들어 있다. 예를 들어, 디스크나 키보드, 프린터 등의 장치 파일이 위치한다.3. /etc - 설정 파일시스템과 어플리케이션 설정 파일들이 이곳에 위치한다. 리눅스를 운영하고 관리할 때 중요한 디렉터리다.4...

리눅스 2025.04.17

유니티 - 직렬화

Unity에서의 Serialization 개념 정리using System;using UnityEngine;using UnityEngine.Events;[Serializable]struct TestStruct{ public float value1; public int value2;}public class SerializationTest : MonoBehaviour{ public Vector3 _vec3; [SerializeField] private TestStruct _struct; [SerializeField] private UnityEvent _event;}Unity에서 프로젝트를 구성하고 데이터를 다룰 때 직렬화(Serialization) 개념을 제대로 이해하고 있는지 여부..

유니티 2025.04.17