728x90

분류 전체보기 169

백준 #1012 [c++]

#include #include #include #include using namespace std; int farm[51][51] = { 0 }; // 땅으로 초기화 bool visit[51][51] = { false }; // 방문 false로 초기화 int t, m, n, k; // 테스트케이스 개수, 가로길이, 세로길이, 배추개수 // 상하 좌우 int dir_x[] = { 0,0,-1,1 }; int dir_y[] = { 1,-1,0,0 }; void bfs(int y, int x) { queue q; q.push(make_pair(y, x)); visit[y][x] = true; // 좌표에 해당하는 곳 방문 표시 // 큐가 빌 때까지 while (!q.empty()) { auto node =..

Baekjoon 2021.08.01

백준 #2606 [c++]

// bfs #include #include #include #include using namespace std; int n, m; // n : 정점의 개수, m : 이어져있는 노드의 수 vector visit; // 방문한 노드를 표시하기 위함 vector node; // vector 배열을 받기 위함 int bfs(int start) { int count = 0; queue q; q.push(start); // 시작점 큐에 넣고 visit[start] = true; // 시작점 방문표시 while (!q.empty()) { // 큐가 비어있지 않으면 int x = q.front(); // 큐의 front값 x에 저장 q.pop(); // 큐에서 front를 pop count++; for (int i ..

Baekjoon 2021.07.22

백준 #2667 [c++]

// 풀이 #include #include #include #include using namespace std; bool visited[25][25] = { false }; int map[25][25]; // 상하좌우 int dir_x[] = { 0,0,-1,1 }; int dir_y[] = { 1,-1,0,0 }; int n = 0; // 지도의 크기 int bfs(int y, int x) { queue q; q.push(make_pair(y, x)); visited[y][x] = true; int count = 1; // 이미 1인 노드를 선택했으므로 count는 1부터 시작, 단지의 집 갯수 // 큐가 빌 때 까지 while (!q.empty()) { auto node = q.front(); q.p..

Baekjoon 2021.07.22

Unity 2D basic #5 (Instantiate)

- Instantiate(GameObject original) : original 게임오브젝트(프리팹)를 복제해서 생성 (복제되는 오브젝트의 모든 컴포넌트 정보가 원본과 완전히 동일) - Instantiate(GameObject original, Vector3 position, Quaternion rotation) : original 게임오브젝트(프리팹)을 복제해서 생성하고, 생성된 복제본의 위치를 position으로, 회전을 rotation으로 설정 - GameObject clone = Instantiate(GameObject original, Vector3 position, Quaternion rotation) : 생성된 복제 오브젝트의 정보를 clone에 저장, clone과 오브젝트의 정보는 동일,..

Unity 2021.07.04

Unity 2D basic #4 (Trigger)

- OnTriggerEnter2D() : 두 오브젝트가 충돌하는 순간 1회 호출 - OnTriggerStay2D() : 충돌 직후 맞닿아 있는 동안 매 프레임 호출 - OnTriggerExit2D() : 두 오브젝트가 떨어져서 충돌이 종료되는 순간 1회 호출 - Trigger가 영향을 미치는 대상 Object의 Collider2D에서 "Is Trigger"가 설정 되어있어야 Trigger가 발동함 - 만약 이미 대상 Object의 Collider2D가 Used By composite로 설정되어 있는경우 Collider2D 하나를 추가하면 됨 // TriggerEvent.cs // 트리거 오브젝트에 닿는 동안 moveObject를 빨간색으로 만들고 vector y축방향으로 3만큼 튕겨오름 using Sys..

Unity 2021.07.03

Unity 2D basic #3 (Collision)

- OnCollisionEnter2D : 충돌이 일어나는 순간 1회 호출 - OnCollisionStay2D : 충돌이 유지되는 동안 매 프래임 호출 - OnCollisionExit2D : 충돌이 종료되는 순간 1회 호출 // Collision.cs // 플레이어가 블럭에 충돌하는 동안 파란색으로 변함, 충돌 종료시 default color로 돌아옴 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CollisionEvent : MonoBehaviour { // 해당 변수의 바로 윗줄에 작성 Transform의 positiom, rotation 변수들과 같이 Inspector View에서 변..

Unity 2021.07.03

Unity 2D basic #2 (Key Input)

- project setting -> Input Manager에서 오브젝트 조작키 설정가능 float value = Input.GetAxisRaw("단축키명"); // 긍정 +1, 부정 -1, 대기 0 float value = Input.GetAxis("단축키명"); // GetAxisRaw()는 키를 누르면 바로 1 or -1이 되지만, GetAxis()는 서서히 증가 // Movement.cs using System.Collections; using System.Collections.Generic; using UnityEngine; public class Movement2D : MonoBehaviour { private float moveSpeed = 5.0f; // 이동속도 private Vecto..

Unity 2021.07.03

Unity 2D basic #1 (Initialize & Update)

- 초기화 함수 Awake() : 현재 씬에서 게임오브젝트가 활성화 되어 있을 때 1회 호출, 컴포넌트가 비활성이라도 게임오브젝트가 활성화면 호출 (데이터 초기화 용으로 사용) Start() : 현재 씬에서 게임오브젝트와 컴포넌트가 모두 활성화 되어 있을 때 1회 호출 (데이터 초기화 용) 첫 번째 업데이트 함수가 실행되기 직전에 호출 OnEnable() : 컴포넌트가 비활성화 되었다가 활성화 될 때 마다 1회 호출 - 초기화 함수 호출 순서 Awake() -> OnEnable() -> Start() - 업데이트 함수 Update() : 현재 씬이 실행된 후 컴포넌트가 활성화되어 있을 때, 매 프레임마다 호출 (FPS 60이면 update함수가 1초에 60번 호출) Time.deltaTime을 곱하면 시..

Unity 2021.07.03

LCA [c++]

최소 공통 조상(Lowest Common Ancestor)는 트리(Tree) 구조에서 특정한 두 노드의 공통된 조상 중에서 가장 가까운 조상을 말한다. LCA 알고리즘은 트리에서 두 노드사이의 거리를 빠르게 구하는ㅇ 등의 다양한 계산에 활용될 수 있다는 특징이 있다. 여기서 다룰 알고리즘은 일종의 dynamic programming이며 최소 공통 조상을 빠르게 찾아내는 알고리즘이다. 노드를 거슬러 올라가 보면 15와 20의 LCA는 1이다. 이를 구하는 방법은 1. 모든 노드에 대한 깊이(depth)를 구한다. 2. 모든 노드에 대한 2^i번째 부모 노드를 구한다. 3. 최소 공통 조상을 찾을 두 노드를 설정한다. 4. 두 노드의 깊이(depth)가 동일하도록 거슬러 올라간다. 5. 최상단 노드부터 내려..

Algorithm 2021.02.05