배운 점
- Dynamic Programming
- 하나의 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 방법
- 재귀 형식의 메서드를 사용하는 것이 아니라, 각각의 케이스 별로 저장이 되어있기 때문에 시간복잡도 상에서 효율적이다
- bottom-up, top-down 방식이 있음
- Nullpointer (런타임 에러)
- 런타임 도중에 발생하는 에러로 Null값인 곳을 가리키는 에러
- 리스트, 맵, set 등을 사용할 때에 지정한 크기를 넘어서거나 할당되지 않은 부분을 사용하려고 할 경우 발생했다.
- 메인 메서드의 길이를 최대한 줄이고, 각 기능들을 하나하나의 메서드를 구현해서 하는 편이 보기도 편하고 수정할 때에도 좋다.
느낀 점
- 세상에 참 많은 알고리즘이 있구나
-> 공부할 것이 많으니 하나하나 차근차근 진행해야겠다
-> 잘 이해하고 다음에 봤을 때에도 한번에 이해되도록 정리해놓는 것이 중요
- 여태 내가 짜던 코드는 그냥 메인 메서드 상에서 주로 구현하는 방식이었는데 협업을 위해서, 그리고 수정을 위해서는 각각의 기능별로 따로 메서드를 구현해야겠다.
잘한 점
- 개인, 팀 과제에서 가능하면 기능별로 메서드를 구현하고자 하였음.
아쉬운 점
- 날이 더운지 의욕이 잘 생기지 않아서 밍기적대는 시간이 조금 늘어난듯
- 정리를 제대로 안하고 있는 느낌이 든다.
-> velog에 제대로 정리해놓자.