본문 바로가기

전체 글

(79)
LeetCord - 733. Flood Fill 이미지는 m x n 크기의 정수 그리드인 image로 표현됩니다. image[i][j]는 이미지의 픽셀 값입니다. 또한 세 개의 정수 sr, sc, color가 제공됩니다. 이미지[sr][sc]에서 시작하여 이미지에 대해 flood fill 작업을 수행해야 합니다. flood fill을 수행하기 위해서는 시작 픽셀과 동일한 색상을 가진 시작 픽셀과 4방향으로 연결된 모든 픽셀, 그리고 그 픽셀들과 4방향으로 연결된 모든 픽셀들(또한 같은 색상)을 고려합니다. 이들 모든 픽셀의 색상을 color로 바꿉니다. flood fill을 수행한 후 수정된 이미지를 반환합니다. 1. BFS 탐색 준비하기 상하좌우 이동방향이 들어있는 배열을 만듭니다. 방문처리할 image의 크기만큼 bool 배열을 만듭니다. 시작지점..
LeetCord - 84. Largest Rectangle in Histogram 주어진 배열 heights는 히스토그램의 막대 높이를 나타내는 정수들로 구성되어 있습니다. 각 막대의 너비는 1로 가정하고, 히스토그램에서 가장 큰 직사각형의 넓이를 반환하는 문제 입니다. https://www.algotree.org/algorithms/stack_based/largest_rectangle_in_histogram/ Finding the Largest Area Rectangle In A Histogram :: AlgoTree Finding the Largest Area Rectangle In A Histogram Histogram is nothing but a graphical representation of data using columns or bars of different heigh..
리스트, 구조체 - '깊은복사' '얕은 복사'에 대한 고찰 순서 1. 구조체에 대한 고찰 2. 구조체 객체를 저장하기위한 동적 리스트를 생성했을때 1. 구조체에 대한 고찰 *값 형식 *구조체는 값에 의한 복사를 수행하며, 변수에 할당된 구조체의 복사본을 수정해도 원래의 구조체에는 영향을 주지 않습니다. 따라서 구조체의 멤버 변수를 수정하려면 해당 구조체를 새로 생성하여 수정된 값을 할당해야 합니다 메모리 할당 구조체는 값 형식이므로 스택(Stack)에 직접 메모리를 할당합니다. 메모리 할당과 해제가 빠르며 데이터의 크기가 작을 때 유리합니다. 그래서 데이터의 읽기와 쓰기가 빠르다는 장점이 있습니다. int a = 10; int b = a; *값 형식은 변수 간에 값이 복사되는데, 변수의 동작 방식을 설명하는 개념입니다. 값 형식의 변수는 해당 변수에 저장된 값이..
Disintegrate Enemy Effect(Shader+VFX) Texture ↓ 더보기 Albedo 표면의 색상 및 질감을 정의하는 데 사용되는 텍스쳐입니다. 주로 물체의 기본 색상 맵핑에 사용되며, 픽셀별로 표면의 색상 정보를 담고 있습니다. 예를 들어, 벽면의 벽돌 또는 나무의 표면 텍스쳐 등을 Texture Albedo로 사용할 수 있습니다. Normals 표면의 방향과 기울기를 나타내는 벡터입니다. 표면의 각 픽셀에 대해 노멀 벡터를 지정하여, 빛이 표면에 반사되는 방향을 결정하는 데 사용됩니다. 이를 통해 빛의 입사각에 따라 표면이 어떻게 조명되고 투영되는지 시각적인 효과를 조절할 수 있습니다. Normals는 주로 표면의 입체감을 강조하거나 광택 효과를 부여하는 데 사용됩니다. Ambient Occlution 주변 환경의 조명 상태에 따라 표면의 그림자 ..
4주차, 플레이어의 데이터 저장하기, 불러오기 플레이어의 데이터파일 저장하고 불러오기 1. 시작 2. 파일 저장하기 3. 파일 로드하기 1. 시작 Nuget 관리에서 Newtonsoft.Json을 찾아 인스톨 해줍니다. 그리고 json으로 파싱할 곳에 using 으로 Newtonsoft.Json을 참조해 줍니다. Newtonsoft.Json란 ? 더보기 JSON 데이터를 처리하는 데 사용되는 라이브러리입니다. 이 라이브러리는 JSON 데이터를 직렬화(객체를 JSON 문자열로 변환)하고 역직렬화(JSON 문자열을 객체로 변환)하는 기능을 제공하여 데이터를 간편하게 주고받을 수 있도록 도와줍니다. 2. 파일 저장하기 더보기 직렬화(Serialization)는 객체를 데이터 스트림이나 바이트 배열과 같은 형태로 변환하는 과정을 말합니다. 이렇게 변환된 데..
3주차, 콘솔창으로 블랙젝 만들기 콘솔창을 사용해 블랙젝 게임 만들기. 게임 설명 블랙젝이란 카드를 뽑아 카드의 합으로 딜러를 이기는 게임입니다. 카드의 합은 21을 넘길 수 없으며 21을 넘기게 되면 Bust로 게임에서 지게됩니다. 카드의 합이 21이 되면 블랙젝으로 게임에서 승리하게됩니다. 플레이어는 현재 자기 카드의 합을 계산하고 다음에 나올 카드를 예측해 카드를 더 받을지(Hit) 아니면 여기서 카드를 그만 받고(Stand) 딜러의 카드를 볼지 정할 수 있습니다. 딜러와 카드의 합이 똑같은 경우는 무승부로 게임이 종료됩니다. 현재 만드는 블랙젝 콘솔창 게임은 딜러와 플레이어의 1:1 을 기준으로 만들 것 입니다. 순서 1. 게임의 상태를 만듭니다. 2. 간단한 카드매니저를 만들어 줍니다. 3. 플레이어 클래스를 만들어줍니다. 이 ..
3주차, 콘솔창으로 스네이크 게임 만들기 콘솔창으로 스네이크 만들어 보기 설명 플레이어가 조종하는 뱀을 키워나가는 게임입니다. 게임 화면은 일반적으로 격자 형태로 구성되어 있으며, 뱀은 한 칸씩 이동하면서 먹이를 먹어 몸을 키워나갑니다. 게임의 목표는 뱀을 최대한 길게 키우면서, 벽이나 자기 자신과 부딪히지 않도록 하는 것입니다. 뱀이 벽이나 자기 자신과 충돌하면 게임이 종료되며, 획득한 점수가 표시됩니다. 일반적으로 플레이어는 키보드의 화살표 키를 사용하여 뱀의 이동 방향을 조절합니다. 뱀은 먹이를 먹을 때마다 길어지며, 게임이 진행될수록 뱀의 이동 속도가 빨라집니다 순서 1. 기본적으로 2차원 배열을 만들어 보드판을 구성 할 것이기 때문에 위치값으로 사용할 구조체를 만들어 줍니다. 2. 보드판 클래스를 만들어 계속해서 맵을 랜더링할 함수를 ..
2주차, 배열과 리스트 고찰 + 콘솔을 이용한 틱택토 게임 만들기 목차 1. 배열과 리스트 고찰 2. 콘솔을 이용한 틱택토 게임 만들기 1. 배열과 리스트 고찰 배열과 리스트의 차이점을 크게 4가지로 나눠 알아 보겠습니다. 크기 배열은 고정된 크기를 가지며, 한 번 생성되면 크기를 변경할 수 없습니다. 리스트는 동적으로 크기를 조정할 수 있습니다. 따라서 리스트는 필요에 따라 요소를 추가하거나 제거할 수 있습니다. 데이터 유형 배열은 동일한 데이터 유형의 요소들로 이루어져 있습니다. 예를 들어, 정수 배열은 정수 값들의 집합으로 구성됩니다. 리스트는 다른 데이터 유형의 요소들을 혼합하여 저장할 수 있습니다. 예를 들어, 정수와 문자열을 함께 저장할 수 있는 리스트를 만들 수 있습니다. 리스트는 Linked List*로 구현 되기 때문에 접근 속도가 배열보다 느립니다. ..