Programming
-
Concept: 시간복잡도의 기본적인 이해각종 학습 요약/Concept 2022. 5. 31. 11:21
시간복잡도Time Complexity의 기본적인 이해 이 글에서는 시간복잡도의 대표적인 유형과 기본적인 원리에 대해 이해해봅니다. 시간복잡도가 왜 낮아야 좋은 건지, 내가 짠 코드가 어떤 시간복잡도에 해당하는지는 알고 있도록 돕는 글입니다. 이 글을 읽어도 시간복잡도를 증명하거나 하는 일은 할 수 없습니다. 그 정도의 개념을 설명하고 있어요. 시간복잡도란? 시간복잡도는 매-------------------우!!!!!! 큰 수의 데이터 표본을 다룰 때에 좀 더 효과적으로 처리하고자 고안된 개념이에요. 시간복잡도 표기와 읽기 O(1), O(n)과 같은 식으로, 대문자 O 옆에 괄호를 쓰고, 그 안에 복잡도를 기록하는 식으로 표기합니다. 이 표기법을 빅오 표기법이라고 해요. 각각 오원, 오엔의 시간복잡도를 갖..
-
Concept : 재귀(Recursion)의 기본 개념 이해하기각종 학습 요약/Concept 2022. 5. 24. 11:08
재귀(Recursion)의 기본 개념 이해하기 이 글에서는 기존에 반복문으로 해결하던 문제를 재귀적 사고로 해결할 수 있다는 것을 알아봅니다. 재귀함수를 구성하는 기본적인 논리와 재귀함수를 구현할 때의 주의점에 대해 짚어봅니다. 재귀적(recursive) 호출이란? 재귀를 wikipedia를 찾아보면 자기 스스로를 참조하는 것이라고 정의되어있습니다. 스스로를 호출하는 함수(메서드)라고 보아도 무방할 것 같습니다. 왜 스스로를 호출하느냐? 그것은 문제가 해결될 때까지 특정 동작을 반복하기 위해서입니다. 근데, 여기쯤 왔다면 우리는 이미 반복을 위한 도구를 가지고 있죠. for와 while로 대두되는 반복문입니다. 반복문도 반복을 위한 것이고, 재귀도 반복적인 동작을 위한 것이라면 둘의 차이는 무엇이 있을까..