9. C++ 미로찾기(Queue, Maze)
Queue를 이용한 미로찾기 예제입니다. 1. "1"로만 이동 가능하고, 0은 이동 불가 1,1,0,0,0 0,1,1,1,1 0,0,1,1,1 0,0,0,0,1 2. 시작 (0,0)을 1로 할 때, (3,4)에서 탈출하면, 최단경로는 8. 3. 코드 #include #include #include using namespace std; vector ans; void solution(vector maze) { int dx[4] = {-1,1,0,0}; int dy[4] = {0,0,-1,1}; ans[0][0] = 1; queue x; queue y; x.push(0); y.push(0); int row, col; while (!x.empty()) { row = x.front(); col = y.front(..
2021. 8. 19.
8. C++ 동적프로그래밍, 재귀, Top Down, Bottom Up, 피보나치
* 개인 공부를 위하여 간단하게 정리한 것입니다. * 틀린 부분 지적은 늘 환영입니다. 일반적으로, 프로그래밍에서 피보나치 수열은 재귀함수를 통하여 구현합니다. 그러나 만약 a(n)의 피보나치 수열을 구할 때, 시간복잡도는 2^n이 되어 문제가 됩니다. 동적프로그래밍을 이용하여 피보나치 수열을 구하는 방법을 알아보겠습니다. 1. 피보나치 수열 (Fibonacci Sequence) 1, 1, 2, 3, 5, 8, 13, 21 ... 과 같은 형태로 나타나는 수열 1.1. 피보나치 수열의 점화실 a(n+2) = a(n+1) + a(n) (n >=3, a(1) = a(2) = 1) 2. 재귀함수 (Recursive Function) a(1) = a(2) = 1 a(n) = a(n-1) + a(n-2) if) ..
2021. 8. 19.
7. C++ 오름차순 정렬 (vector, sort, ascending, descending)
* 개인 공부를 위하여 간단하게 정리한 것입니다. * 틀린 부분 지적은 늘 환영입니다. @ 프로그래머스 정렬 문제를 풀기위한 노트입니다. 정렬 알고리즘을 간단하게 쓰기 위하여 algorithm 라이브러리의 sort 함수를 사용하겠습니다. 1. vector 정의 vector a = {5, 4, 1, 10, 9}; 2. 오름차순 정렬 sort(a.begin(),citations.end()); 3. 내림차순 정렬 3.1. a가 오름차순 정렬로 되어 있기 때문에 이를 reverse합니다. reverse(a.begin(),a.end()); 3.2. 조건을 추가하여 2를 진행하지 않고 곧장 내림차순으로 정렬합니다. sort(citations.begin(),citations.end(),greater());
2021. 8. 19.
6. C++ string 크기 비교 2 (compare, cmp)
* 개인 공부를 위하여 간단하게 정리한 것입니다. * 틀린 부분 지적은 늘 환영입니다. @ 프로그래머스 정렬 문제를 풀기위한 노트입니다. int형 배열 {5,9,11,5,42,3}을 나열한 숫자 중 가장 큰 수는 95542311 이 될 것입니다. 어떻게 구할까요? 한참을 고민하고 풀어봐도 못 풀어서 구글 선생님의 힘을 빌렸습니다...ㅠㅠ 1. string형 배열 생성 vector strs = { 5,9,11,5,42,3 }; string ans = solution(strs); 2. solution 함수는 다음과 같습니다. 2.2. to_string을 이용하여 strs 배열의 원소들을 int형으로 변환합니다. 2.2. sort 함수에 cmp라는 조건을 추가합니다. -> (3.으로) 2.3. vector를 ..
2021. 8. 19.