알고리즘 공부 전략 세우기
현재
-------------------------------------------------------------------------------------
현재 까지 생각없이 버릇처럼 문제를 풀었지만
스스로 좀 더 전략적인 작전을 세우기 위해 쓴 글입니다. ( 스스로에게 실험 )
-------------------------------------------------------------------------------------
알고리즘 공부 이유
-------------------------------------------------------------------------------------
딱히 알고리즘을 잘하려고 공부하려고 한다기 보단
Java를 좀더 잘 알고 싶어서 공부하려고 한다.
Java의 Arrays.sort() 등등 API로 개발을 하지만 Time complexity나 Space complexity는
고려해 본적이 없다.
"내부적으로 데이터가 50개 이상이면 quick Sort을 쓴다." 정도?
알고리즘을 공부하면서 Java가 왜 Quick Sort를 사용했는지 Time complexity나 Space complexity는 어떻게 되는지 생각할 수 있을것 같다.
게다가
알고리즘을 공부하면서 수학 공식(등차수열의 합, 팩토리얼)으로 풀었던 문제가 재귀호출로 풀면 더 효율적으로
바뀌는 것을 보았을 때 좀 놀라웠다. 이게 바로 프로그래밍적 사고가 아닐까?
이유
1. Java를 깊이 있게 공부
2. 프로그래밍적 사고력
-------------------------------------------------------------------------------------
공부
-------------------------------------------------------------------------------------
문제를 많이 풀어본 것은 아니지만 보통 풀이 흐름을 보면 다음과 같다.
1. 문제 이해( 문제 분해, 이해, 원리, 전략 알고리즘 )
2. 문제 풀이 생각( 논리력 )
3. 알고있는 개념 적용 ( 배경지식 )
4. Time complexity and Space complexity 생각 ( 배경지식 )
5. 예외 생각
6. 문제 풀이 구현 ( 개발 실력, 배경지식 )
1->(2->3->4->5->6) 반복
중간에 하나라도 제대로 개념이 잡혀있지 않으면 문제풀기가 힘들어진다.
공부 내용
1. 알고리즘 공부할 언어 학습( 자주 사용되는 API 공부 )
2. JAVA 자료구조
-------------------------------------------------------------------------------------
전략
-------------------------------------------------------------------------------------
습관의 힘, 함께 자라기, 1만시간의 법칙, 1만시간의 재발견,
영어 단어 가장 쉽게 외우는 방법
에빙하우스의 망각곡선
1. 자극 -> 행동 -> 보상
2. 피드백
3. 의식적인 노력
4. 1일 2일 3일 3일후 7일후 15일후 30일후
-------------------------------------------------------------------------------------
결론
-------------------------------------------------------------------------------------
문제를 많이 풀어본 것은 아니지만 보통 풀이 흐름을 보면 다음과 같다.
1. 문제 이해( 문제 분해, 이해, 원리, 전략 알고리즘 )
2. 문제 풀이 생각( 논리력 )
3. 알고있는 개념 적용 ( 배경지식 )
4. Time complexity and Space complexity 생각 ( 배경지식 )
5. 예외 생각
6. 문제 풀이 구현 ( 개발 실력, 배경지식 )
1->(2->3->4->5->6) 반복
중간에 하나라도 제대로 개념이 잡혀있지 않으면 문제풀기가 힘들어진다.
공부 내용
1. 알고리즘 공부할 언어 학습( 자주 사용되는 API 공부 )
2. JAVA 자료구조
-------------------------------------------------------------------------------------
전략
-------------------------------------------------------------------------------------
습관의 힘, 함께 자라기, 1만시간의 법칙, 1만시간의 재발견,
영어 단어 가장 쉽게 외우는 방법
에빙하우스의 망각곡선
1. 자극 -> 행동 -> 보상
2. 피드백
3. 의식적인 노력
4. 1일 2일 3일 3일후 7일후 15일후 30일후
-------------------------------------------------------------------------------------
결론
-------------------------------------------------------------------------------------
Java공부와 프로그래밍적 사고력을 키우기 위해 알고리즘을 지속적으로 공부하면서
암기 전략으로 효율성을 증대시킨다.
-------------------------------------------------------------------------------------
Comments
Post a Comment