less than 1 minute read

2020년 8월 3일 모각코 8일차 진행

  • 금일의 모각코 진행 목표
    1. 자료구조 실습 복습 - 이진트리: levelOrder, PreOrder
    2. 졸업 프로젝트 데이터베이스 스키마 생성
    3. 알고리즘 문제 1개 풀기
  • 금일의 모각코 진행 결과
    1. 졸업 프로젝트
      중간에 커밋 메세지 내역 오류가 있어 이를 수정하니 시간이 부족했다
      모각코 종료 이후에 계속 진행할 예정이다
  1. 자료구조 실습 복습 BinaryTree를 배열로 생성하여 큐를 사용해 levelOrder를 구현하고 재귀를 사용해 preOrder를 구현하였다.

  2. 알고리즘 BOJ문제를 풀고 깃 레포에 push

     size = int(input())  
     zoo = [[0]*2 for _ in range(size)]  
     zoo[0][0], zoo[0][1] = 1, 1  
     for i in range(1, size):  
     zoo[i][0] = zoo[i-1][0] + zoo[i-1][1]*2 % 9901  
     zoo[i][1] = zoo[i-1][0] + zoo[i-1][1] % 9901  
     print((zoo[size-1][0] + zoo[size-1][1]*2) % 9901)  
    

    다이나믹 프로그래밍을 이용하여 n번째 우리에 사자를 넣지 않는 경우, 오른쪽에 한마리 넣는 경우, 왼쪽에 한마리 넣는 경우 이렇게 세가지로 경우를 나누고 n번째 우리에 첫번째 경우에는 n-1번째의 세가지 경우가 모두 가능하므로 모두 더하고, 두번째의 경우에는 n-1번째에서 사자를 넣지 않는 경우와 왼쪽에 한마리 넣는 경우를 더하고, 세번째의 경우는 두번째와 반대로 넣지 않는 경우와 오른쪽에 한마리를 넣는 경우를 더하는 방식으로 접근하였다.
    원래는 3차원배열을 사용하였는데 메모리 초과 오류가 났다.. 그래서 2차원 배열로 다시 시도하였으나 또 오류가 났다..!
    알고보니 숫자가 나중에 너무 커져서 그런 것이었다… 바로 9901로 나눈 값을 배열에 저장하니까 해결되었다 앞으로는 문제도 꼼꼼히 봐야겠다