타일채우기2 다이나믹 알고리즘_타일 채우기 [2/2] 이번에는 타일이 늘었습니다. 이전글은 1*2 / 2*1 두 개의 타일이 있었는데 이번에는 2*2 타일로 추가해보라고 하네요. 과제는 유투브 '동빈나'님의 알고리즘 강의를 참고했습니다. 별로 달라지는 건 없는 것 같습니다. 수열의 규칙이 바꼈을 뿐.. 규칙을 달리해서 수열을 전개해보라는 걸까요. 일단 이전글처럼 일반 반복문, 재귀함수 버전으로 한 번 작성해보겠습니다. 제가 뭔가를 잘 못 생각하고 있는걸까요.. 아무리 고민해봐도 수식에서 숫자 1개 추가하고 1개 바꿔주는 것 외에는 달라지는게 안보이는데 흠.. 일단 미심쩍으므로 재귀함수 버전만 짜보고 강의를 들어보겠습니다. 굳이 값을 리턴해야하는 경우가 아니라면 재귀함수에서는 그냥 void함수로 사용하고 포인터를 써서 특정 변수들을 바꿔주는 방식이 더 편.. ▸C언어/알고리즘 및 자료구조 2019. 12. 9. 다이나믹 알고리즘_타일 채우기 [1/2] [ 다이나믹 알고리즘이란? ] 반복되는 작업 없이 알고리즘 수행 이미 한 번 계산한 경우 그 값을 어딘가에 저장해뒀다가 재활용하는 구조 의미만 보면 간단합니다. 재귀함수같이 동일 알고리즘을 arguments만 바꿔가면서 계속 수행할 때, 이전 값의 결과를 가져와서 수행할 수 있도록 만들어준다는 것이죠. 사실 뭔가 거창한 이름이지만 이제까지 해왔던 로직들과 그리 다를 건 없는 것 같습니다. 최대한 효율적으로 수행한다 정도로 이해하면 될 것 같습니다. 그럼 타일채우기 문제를 한 번 풀어보도록 하겠습니다. 과제는 유투브 '동빈나'님의 알고리즘 강의를 참고하였습니다. 그려보니 [1,2] 로 시작하는 피보나치 수열이 나옵니다. 간단한건데 한참을 고민했네요.. 오른쪽으로 한칸 늘어나면 (n -1) 경우의 수와.. ▸C언어/알고리즘 및 자료구조 2019. 12. 9. 이전 1 다음 💲 추천 글 반응형