본문 바로가기
반응형

전체 글454

Sort 삽입 정렬(Insertion Sort) 알고리즘 [Sort] 삽입 정렬(Insertion Sort) 알고리즘 삽입 정렬은 두 번째 원소부터 시작하여 앞의 원소들을 비교하고, 삽입할 위치를 정한다. 삽입할 위치가 정해졌으면 대상 위치 부터 자신의 바로 앞 위치까지 있는 원소들을 한 칸씩 뒤로 옮겨 들어갈 자리를 만든 후 삽입해 정렬하는 알고리즘이다. 가나다 순으로 되어있는 책들 사이에 끼워 넣거나 순서대로 정렬할 필요가 있는 카드를 생각하면 이해가 쉽다. 아래는 삽입 정렬을 그림으로 표현한 것이다.1회차   - 2번째 원소 3을 Key로 두고 앞에 있는 5와 비교하고 자리를 바꾼다.2회차   - 3번째 원소 1을 Key로 설정하고 앞에있는 5와 3을 비교하고 뒤로 한 칸씩 밀어낸다.   - 비어있는 첫 번째 원소 자리에 1을 삽입한다.3회차   - 4번.. 2023. 9. 3.
의사 코드(Pseudo Code)(슈도 코드, 가짜 코드)란? 의사 코드(Pseudo Code)(슈도 코드, 가짜 코드)란? Pseudo(슈도, 수도)는 '가짜의', '모조의', '허위의', '의사의(비슷하여 분간하기 어려움)'의 뜻을 가지고 있다. 이처럼 의사 코드는 프로그램을 실제로 작성하기 전 실제 코드를 대략적으로 흉내내어 흐름을 파악하기 위한 용도로 작성한 코드를 말한다. 물론 이름의 뜻처럼 가짜 코드이기 때문에 실제 프로그래밍 툴에서 컴파일 되지 않는다. 자신이 이해하기 편한 자연어나 팀원들이 익숙한 언어를 모방하여 실행 가능성을 배제한 채 작성되었기 때문에 의사 코드라 한다. 예를 들어서 구구단을 출력하는 코드를 슈도코드로 작성하였을 때 다음과 같다. // 자연어에 익숙한 경우 반복 A는 2~9까지 반복 B는 2~9까지 출력 'A' * 'B' = A*B.. 2023. 9. 3.
Sort 버블 정렬(Bubble Sort) 알고리즘 [Sort] 버블 정렬(Bubble Sort) 알고리즘버블 정렬(Bubble Sort)이란 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘이다. 배열 A[N]이 있을 경우 배열의 원소 A[n]과 ~ A[n+1]을 순차적으로 비교하며 가장 큰 수를 맨 뒤로 이동하는 방법이다.가장 큰 자료가 맨 뒤로 이동하므로 맨 끝 원소는 검사 및 정렬에서 제외된다. 반복횟수마다 검사하는 원소가 줄어드는 이유이다. 5개의 원소 안에 {5, 3, 1, 4, 2} 의 원소가 들어가 있을 경우 버블 정렬은 아래 그림과 같다.1회차   - 5와 3을 비교 후 자리를 바꾼다.   - 5와 1을 비교 후 자리를 바꾼다.   - 5와 4를 비교 후 자리를 바꾼다.   - 5와 2를 비교 후 자리를 바꾼다.   - 마지막 자리수는 이.. 2023. 9. 3.
Sort 선택 정렬(Selection Sort) 알고리즘 [Sort] 선택 정렬(Selection Sort) 알고리즘 선택 정렬은 원리가 간단한 정렬 알고리즘 중 하나다.배열[A ··· n] 에서 가장 큰 원소를 마지막 원소와 자리를 바꾸거나, 가장 작은 원소를 제일 앞 원소와 자리를 바꾸는 것이다.자리 바꾸기가 완료되면 그 원소가 있는 자리는 신경쓰지 않아도 된다. 배열 { 3, 5, 1, 4, 2} 가 있을 때, 뒤에서 부터 오름차순 정렬하는 모습은 다음과 같다.*보통 프로그래밍 언어에서 인덱스는 0번 부터 시작한다.{ 3, 5, 1, 4, 2} 중 가장 큰 수 '5'를 찾는다. ('5'는 인덱스 1번에 있다.){ 3, 2, 1, 4, 5} '5'를 가장 뒤에 있는 '2'와 자리를 바꾼다. (1번 인덱스와 4번 인덱스 자리 바꿈){ 3, 2, 1, 4, 5.. 2023. 9. 2.
알고리즘(Algorithm)이란 알고리즘(Algorithm)이란 문제를 해결하기 위한 절차나 방법. 문제 해결 방법을 정의한 '일련의 단계적 절차'이자 어떠한 문제를 해결하기 위한 '동작들의 모임'이다. 컴퓨터가 따라 할 수 있도록 문제를 해결하는 절차나 방법을 자세히 설명하는 과정이다. 이를 자세히 설명하면 컴퓨터를 활용한 문제 해결 과정에서 주어진 문제를 해결하는 일련의 방법 또는 절차이며, 문제해결 방법을 순서대로, 절차대로 나열한 것이라고 볼 수 있다. 알고리즘의 유래 알고리즘은 9세기 페르시아(이란)의 과학자인 무함마드 이븐 무사 알-콰리즈미(al-Khwarizmi)의 이름을 라틴화한 단어이다. 그는 수학, 천문학, 지리학에 능통했으며, 많은 사람들이 그를 근대 수학의 아버지로 칭한다. 알고리즘(Algorithm)과 대수학(A.. 2023. 8. 30.
컴퓨팅적 사고 (Computational Thinking) 컴퓨팅적 사고 (Computational Thinking) 컴퓨팅적 사고란 란 단편적인 학습에서 벗어나 복합적 사고로 나가는 수단으로, 창의적 문제를 해결하는 핵심 능력으로 주목받고 있다. 컴퓨터의 해결 능력인 데이터 수집ㆍ분석, 표현, 문제 분해ㆍ추상화, 자동화 등을 사고에 적용시켜 여러 분야에서 문제 해결을 하는 데 사용한다. [네이버 지식백과] 컴퓨팅적 사고 (시사상식사전, pmg 지식엔진연구소) 컴퓨터(사람이나 기계)가 효과적으로 수행할 수 있도록 문제를 정의하고 그에 대한 답을 기술하는 것이 포함된 사고 과정 일체를 일컫는다. 정답이 하나가 아니라 여러가지일 수 있는 문제(Open-ended Problem)는 다양한 변수에 기반한 포괄적이며 유의미한 해답 도출이 필요한데, 컴퓨팅 사고를 통해서 .. 2023. 8. 29.
Unreal Collision [Unreal] CollisionSimulaation Generates Hit Events 옵션 : 피직스 시뮬레이션 중 OnHit 이벤트를 발생시킴Generate OverlapEvents 옵션 : OnBeginOverlap 이벤트와 OnEndOverlap 이벤트를 발생시킴Can Character Step Up On 옵션 : 캐릭터가 이 물체에 쉽게 오를 수 있도록 함 Collision Presets- 프로젝트 셋팅 -> 충돌 -> 프리셋에서 세부 설정 확인 가능- 기본적인 반응과 Trace, Object에 대한 충돌 반응을 각각 지정할 수 있음Collision Enabled- 이 물체에 충돌시 쿼리(Query), 피직스(Physics), 둘 다(Both), 충돌 없음(None)로 설정할 수 있다.Obj.. 2023. 8. 28.
Unreal 충돌 이벤트 (Collision Event) [Unreal] 충돌 이벤트 (Collision Event) Unreal에서 충돌의 반응은 무시(Ignore), 겹침(Overlap), 블록(Block) 세 가지가 있다. 충돌 반응에 따라 발생하는 이벤트가 다르니 숙지해 놓는 것이 좋다. 블록(Block) : 두 물체의 반응이 모두 블록으로 설정된 경우에만 블록이 발생한다.   ▶ 두 물체에 대해 모두 OnHit 이벤트가 호출된다. OnHit 이벤트는 두 물체가 서로 충돌하는 순간 서로의 경로를 막을 때마다 호출된다.   ▶ 두 물체 중 하나가 피직스를 시뮬레이션 할 경우에는 해당 물체의 SimulationGeneratesHitEvents 속성을 True로 설정해야 한다.   ▶ 두 물체는 물리적으로 서로가 이동하는 경로를 막는다. 겹침(Overlap).. 2023. 8. 28.
Unreal Break Hit Result [Unreal] Break Hit Result   Blocking HitBoolean차단 적중이 있으면 참, 그렇지 않으면 거짓 Initial OverlapBoolean히트가 초기 오버랩에서 시작된 경우 True 일부 다른 값은 다르게 해석, 시간은 0이고 ImpactPoint는 위치와 동일하며 법선은 동일하며 침투 벡터를 나타냅니다. TimeFloat적중이 있는 경우 [0.0 ~ 1.0) 범위의 추적 방향을 따른 충격의 '시간'으로, 시작과 끝 사이의 시간히트가 없으면 1.0 DistanceFloatTraceStart에서 월드 공간의 위치까지의 거리초기 중첩이 있는 경우(다른 충돌 객체 내에서 추적이 시작됨) 이 값은 0 LocationVector월드 공간에서 히트의 위치이것이 스윕 모양 테스트인 경우.. 2023. 8. 27.
Unreal Collision 설정 [Unreal] Collision 설정 언리얼에서 충돌체 설정 방식편집->프로젝트 세팅->콜리전 오브젝트 채널 만들기 트레이스 채널 만들기 Trace By Channel프리셋 프로파일 만들기 Trace By Profile  Profile 이름Collision Enabled프로퍼티설명No Collision콜리전 없음 - 이 바디는 물리 엔진 내 어떠한 표현이 없습니다. 공간 쿼리(레이캐스트, 스윕, 오버랩) 또는 시뮬레이션(리짓 바디, 컨스트레인트)에 사용할 수 없습니다. 이 세팅은 특히나 움직이는 오브젝트에 최적의 퍼포먼스를 냅니다.Query Only쿼리 전용 - 이 바디는 공간 쿼리(레이캐스트, 스윕, 오버랩)에만 사용됩니다. 시뮬레이션(리짓 바디, 컨스트레인트)에는 사용할 수 없습니다. 이 세팅은 물.. 2023. 8. 25.
Unreal BP Trace [Unreal/BP] Trace Unreal Blueprint Trace by Channel 언리얼에서 Trace By Channel을 사용하는 방법은 쉽다.시작 위치와 끝 위치를 정해주고 Out Hit에서 Brake로 세부 설정들을 빼서 필요한 정보만 사용하면 된다.하나의 블루 프린트에서 시작점을 가져오기 위해 스태틱 메시를 임시로 넣어 놓고포지션으로 시작점을 얻고 시작점과 방향값을 이용해 끝 점을 얻어서 넣어주었다. Trace Channel은 충돌을 무시하거나 오버랩, 블록 등의 역할을 하기 위한 채널이다.프로젝트 셋팅 - 콜리전에서 Trace Channels를 설정한 후 Preset 등에서 포함을 시켜야 판정이 된다.기본적으로 보여지고 있는 물체들을 다 체크하는 Visibility로 설정 되어 있다.. 2023. 8. 25.
Unreal 새 레벨 만들기 [Unreal] 새 레벨 만들기 Unreal에서 새 레벨을 만들면 아무것도 보이지 않는다.그 이유는 빛과 반사되는 물건들이 없기 때문이다. 빛을 추가하는 방법은 여러가지가 있다.직접 추가하거나 언리얼에서 제공하는 환경 라이트 믹서를 활용하는 방법이다. 먼저 빛이 없을 경우를 확인하기 위해 상단 툴 바에서 창 -> 액터 배치를 눌러 큐브를 하나 배치해 본다.큐브를 배치했음에도 불구하고 빛이 없기 때문에 보이지 않는다.디렉셔널 라이트를 추가해 빛이 반사되는 큐브를 확인해 보자.라이트를 배치하니 큐브가 보인다. 디렉셔널 라이트를 추가한 것처럼 하늘, 구름, 애트머스피어, 스카이라이트 등 여러가지를 직접 추가할 수 있지만 언리얼에서는 환경 라이트 믹서라는 편리한 도구를 지원한다. 인바이런먼트 라이트 믹서(Env.. 2023. 8. 22.
반응형