목록2024/02 (147)
득이공간
해당 게시물은 쥬신게임아카데미의 '1개월차 C++' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 1. C++ 기초 1. 변수 2. 자료형 3. 연산자 4. 분기문 5. 반복문 6. 난수 7. n진수 8. 함수 9. 메모리영역 10. 포인터 11. 이중포인터 12. 1차원정적배열 13. 2차원정적배열 14. 문자열 15. 구조체 16. 공용체, 열거체 17. 동적할당 18. 입출력스트림버퍼, 경로 19. 파일입출력, 메모리함수 20. 함수포인터, 재귀함수 21. 레퍼런스, 매크로 22. 조건부컴파일, 파일분할 23. string 📌 1. 변수 O: 한글, _로시작 X: 띄어쓰기, 숫자로시작, _$제외한특수문자, 사용되는키워드 📌 2. 자료형 종류: 정수, 실수, 문자, 논리 1b..
해당 게시물은 이득우 교수님의 '게임 수학의 이해' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 1장. 게임 수학의 소개 1-1. 게임 수학의 개요 1-2. 물체의 수학 1: 이동 변환의 구현 원리 1-3. 물체의 수학 2: 삼각형과 정점 1-4. 물체의 수학 3: 벡터의 내적과 외적 1-5. 회전의 수학 1: 삼각함수와 회전변환 1-6. 회전의 수학 2: 사원수 📌 1-1. 게임 수학의 개요 * 게임 수학의 분류 1. 공간에 대한 수학 2. 물체에 대한 수학 3. 회전에 대한 수학 * 공간에 대한 수학 - 현실 세계 vs 가상 세계 - 벡터 공간(Vector Space): 게임이 사용하는 가상 공간의 본질 - 벡터: 벡터 공간의 원소 - 스칼라: 체 집합의 원소 - 행렬 =>..
11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net #include #include using namespace std; vector Sum; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N, M; cin >> N >> M; Sum.reserve(N); for (int i = 0; i > Number; if (i == 0) { Sum.emplace_..
1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net #include #include #include using namespace std; void TestCase() { int N, M; cin >> N >> M; deque PrinterQueue; for (int i = 0; i > Priority; PrinterQueue.emplace_back(Priority, i); } int Cnt = 1; while (!PrinterQueue.empty()) { int..
해당 게시물은 하루코딩님의 'Do it! 알고리즘 코딩테스트 with C++' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 1장. 자료구조 1-1. 배열, 리스트, 벡터 1-2. 구간 합 1-3. 스택, 큐 📌 1-1. 배열, 리스트, 벡터 * 배열 - 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 * 배열 특징 1. 인덱스를 사용해서 값에 바로 접근할 수 있다. 2. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. - 삽입 or 삭제는 해당 인덱스 주변의 값을 이동시키는 과정 필요 3. 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다. 4. 구조가 간단해서 코딩 테스트에서 많이 사용된다. * 리스트 - 값과..
1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net #include #include #include using namespace std; vector Sequence; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; Sequence.reserve(N); for (int i = 0; i > Number; Sequence.emplace_back(Number); } sort(Seque..
1922번: 네트워크 연결 이 경우에 1-3, 2-3, 3-4, 4-5, 4-6을 연결하면 주어진 output이 나오게 된다. www.acmicpc.net #include #include #include using namespace std; vector EdgeList; vector RootNode; bool Compare(const vector& Left, const vector& Right) { return Left[2] < Right[2]; } int Find(const int& Node) { if (Node != RootNode[Node]) { RootNode[Node] = Find(RootNode[Node]); } return RootNode[Node]; } bool Union(const int..
1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net #include #include #include using namespace std; vector EdgeList; vector RootNode; bool Compare(const vector& Left, const vector& Right) { return (Left[2] < Right[2]); } int Find(int Node) { if (Node != RootNode[Node]) { RootNode[Node]..
11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net #include #include using namespace std; vector Distance; void FloydWarshall(int N) { for (int K = 0; K < N; ++K) { for (int Start = 0; Start < N; ++Start) { for (int End = 0; End < N; ++End) { if (Distance[Start][K] == 0 || Distance[K][End] == 0) { continue; } Distance[Start][E..
11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net #include #include #include using namespace std; const int& Infinite = INT_MAX; vector Distance; void FloydWarshall(int N) { for (int K = 0; K < N; ++K) { for (int Start = 0; Start < N; ++Start) { for (int End = 0; End < N; ++End) { if (Distance[Start][K] == Inf..