일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 그래프
- 자료구조
- VR
- 문자열
- 유니온 파인드
- 브루트포스
- 구현
- DFS
- Unreal Engine 5
- 다익스트라
- 우선순위 큐
- 백트래킹
- 스택
- c++
- 정렬
- 다이나믹 프로그래밍
- 수학
- 재귀
- 백준
- ue5
- 시뮬레이션
- 그리디 알고리즘
- 트리
- Team Fortress 2
- 누적 합
- XR Interaction Toolkit
- 유니티
- BFS
- 투 포인터
- 알고리즘
- Today
- Total
목록전체 글 (616)
1일1알

BST 탐색으로 해결할 수 있는 문제이다. 지도의 모든 부분을 검사하면서 만약 L인 지역이면 그곳부터 BST탐색을 시작하고, 가장 먼 곳 까지의 거리를 구하고 구한 거리들 중 가장 큰 값을 찾으면 해결할 수 있다. 땅을 방문했는지 안했는지 검사하는 visited 벡터를 만들었고, 새로 검사를 시작할 때는 visited 벡터를 초기화 해주었다. 그리고 BST탐색을 하기 위한 큐에는 pair을 사용해서 안쪽에 있는 pair는 좌표 정보를, int는 거리 정보를 저장하면서 탐색을 하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include using na..

백준에서는 입력이 파일로 들어오기 때문에 EOF를 읽게 되면 입력이 종료된다고 한다. 그래서 while (getline(cin, str))을 사용하면 된다. 맵 자료구조는 자동으로 정렬이 되기 때문에 입력받은 정보를 map를 이용해 value값을 증가시켜주기만 하면 된다. #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); map m; ..

Generic (일반화) List intList; List floatList; 앞에서 배운 List에도 Generic이 사용되었다. 안에 타입 형식을 넣어서 원하는 타입의 리스트를 만들 수 있다. class MyList { public T a; public T foo(T val) { return val; } } MyList myIntList = new MyList(); 이런 식으로 클래스에 Generic을 사용하면 원하는 타입으로 객체를 만들 수 있다. object val1 = 3; // val1 : object타입 var val2 = 3; // val2 : int타입 object 타입 : 모든 타입을 포함하는 타입, 참조 타입이다. var 타입 : 뒤에 오는 변수를 보고 타입을 추측해서 그 타입으로 적..

일반적인 정렬을 하면 첫 번째 원소와 마지막 원소를 비교했을 때 차이가 많이 나는 결과가 나오기 때문에 일반적인 정렬로는 해결할 수 없다. 정렬을 한 뒤 새로운 배열에 처음과 마지막 부분에 순서대로 삽입하는 방법을 생각해 볼 수 있다. 2, 4, 5, 7, 9 가 있으면 처음에 2, 마지막에 4, 다시 앞으로 와서 5, 다시 뒤로 가서 7, 다시 앞으로 와서 9 이런식으로 배열을 만들면 2, 5, 9, 7, 4 이렇게 만들어진다. 하지만 이런식으로 만들려면 배열을 하나 더 만들어야 하기도 하고 구현하기도 번거롭다. 그래서 위의 배열 2개에서 찾은 규칙이 있는데, 그 규칙으로 간단하게 문제를 해결할 수 있다. 정렬된 배열을 순서대로 앞뒤에다 배치하기 때문에 정렬된 배열의 특정 원소에서 2칸 떨어진 원소가 ..
자료구조 : 데이터를 저장하는 여러가지 방식? 배열 int[] values = new int[10]; int타입의 변수를 10개를 가지고 있는 배열 배열의 인덱스는 0부터 시작이므로, values[0] ~ values[9] 까지 존재한다. values[0] = 10; values[1] = 20; values[2] = 30; values[10] = 40; //error 위의 코드와 같이 값을 할당할 수 있고, values의 인덱스는 0~9인데 10에 접근하면 오류가 난다. values.Length // 10 Length를 이용해 배열의 크기를 구할 수 있다. values.Length * sizeof(int) int의 사이즈는 4KB이고 values는 길이가 10이기때문에 values의 크기는 4 * 10 ..

스택 자료구조를 이용하여 해결할 수 있는 문제이다. 줄이 6개라고 했으니 스택을 담고있는 벡터를 6개 만들고 각각의 줄을 따로 계산하여 해결하였다. 줄과 프렛을 입력받았을 때 해당 줄에 멜로디가 없거나 입력받은 프렛이 현재 줄의 멜로디보다 높을 경우에는 프렛을 줄에 넣어주고 cnt를 1 증가시켜주었다. 입력받은 프렛이 줄의 멜로디와 같을 경우에는 손가락을 바꿀 필요가 없으므로 아무 행동도 하지 않았다. 입력받은 프렛이 줄의 멜로디보다 작을 경우에는 멜로디가 프렛보다 작거나 같아질 때 까지 손가락을 떼주면서 cnt를 1씩 증가시켜 주었다. 그 후 멜로디가 프렛과 같을 경우에는 아무 행동도 하지 않았고, 멜로디가 프렛보다 작거나 남아있는 멜로디가 없을 경우에는 프렛을 줄에 넣어주고 cnt를 1 증가시켜주었다..