알고리즘(8)
-
재귀함수 (recursion)
| 재귀함수란? 함수가 자기자신을 다시 호출하는 구조로 만들어진 함수이다. 반드시 종료시점 (return 문) 이 존재해야 한다. 종료점이 없다면 계속해서 스택에 함수가 추가 된다. 그로 인해 메모리 사용량이 불필요하게 많이 소모되며 스택오버플로우가 발생할 수 있다. 두가지를 이해하고 넘어가면 재귀함수를 조금 더 쉽게 이해 할 수 있다. - base case (재귀의 탈출 조건) - recursive case (자기 자신을 호출) | 기본적인 재귀 함수 예시 recursionTest 함수에 인자로 넘어온 num을 하나씩 줄여가는 함수이다. 여기서 base case 조건은 num이 0보다 작거나 같을 때 return 으로 0을 뱉어준다. | for문으로 동일한 기능 구현 모든 재귀함수는 반복문으로 동일한 ..
2023.10.09 -
빅오 표기법 (big O notation)
요즘 알고리즘 스터디도 하고 프로그래머스 코딩테스트를 풀고있다. 문제를 마주쳤을 때 문제에 대해 이해도 못했을 뿐만 아니라 그 문제를 어떻게 풀어야되지 라는 막막함도 있었다. 그리고 문제가 해결했을 때 모든 코드의 분석과 해답은 프로그래머스에서 정답이냐 탈락이냐 거기에만 맡겼다. 하지만 내 넘겨 받는 데이터의 갯수가 예시에서는 5개지만 최대 100,000개 까지 넘어온다고 했을 때 나의 코드는 100,000번 연산을 해서 값을 리턴하게 된다. 이러한 점에서 Big O 표기법을 지키며 코드를 작성해야겠다 라고 마음 먹었다. | 빅오 표기법 이란? 알골리즘의 효율성을 의미한다. 효율성은 데이터의 갯수에 따라 기본 연산의 횟수를 의미한다. 예를 들어서 택배 트럭에 택배상자가 3개만 있고 트럭에는 총 500개 ..
2023.09.13