재귀 함수 : 볼수록 빠져는 게 꼭 재귀같네

파이썬으로 이해하는 재귀 함수

여러 알고리즘을 공부하게 되면서 “재귀 함수”가 프로그래밍의 기초 개념을 위해 초반에만 살짝 지나가는 개념이 아니라는 것을 깨닫게 되었습니다. “재귀 함수”는 문제를 해결하기 위해 문제를 더 작은 형태로 나누어 직접 또는 간접적으로 정의 내에서 자신을 호출하는 함수입니다.

시간 복잡도, 공간 복잡도 요약 정리

시간 복잡도와 공간 복잡도에 대한 공부한 내용을 정리해 보았습니다. 시간 복잡도 시간 복잡도는 입력 크기가 증가함에 따라 알고리즘의 실행 시간이 어떻게 증가하는지를 측정한 것입니다. Big-O 표기법은 최악의 시나리오에서 알고리즘의 시간 복잡도의 상한을 표현하는 방법입니다. 이는 특정 하드웨어, 상수 요소 또는 하위 항의 세부 사항에 얽매이지 않고 알고리즘의 효율성을 분석하는 데 도움이 됩니다. Big-O는 다음과 같이 … Read more

스택 자료구조 : 스택을 활용하여 알고리즘 풀기

스택 자료구조

이번 포스트에서는 “스택 자료구조”를 정리했습니다. 자료구조란 “구조+연산” 이기 때문에 이러한 특징을 살펴보고, 이를 이용한 알고리즘 문제를 풀어보았습니다. 스택 구조 스택은 데이터를 한쪽으로만 넣을 수 있으며, 중간에 있는 데이터를 삭제할 수 없습니다. 가장 큰 특징은 후입선출 (LIFO: Last-In-First-Out) 형식의 선형 자료구조입니다. 후입선출 (LIFO): 스택 vs. 큐 vs. 리스트: 스택 자료구조 연산 스택(stack) 데이터 구조에 필요한 기본 연산들 스택 … Read more

알고리즘 공부 시작

“알고리즘”을 딱히 공부한 적이 없어서 알고리즘 공부를 시작하면서 글을 정리해보았습니다. 알고리즘을 따로 공부하지 않았지만 백준이나 프로그래머스 문제가 낮은 난이도의 문제지만 풀리는 걸 보면서 새삼 신기하기도 했습니다. Bioinformatics로 일하면서 문제를 해결했던 게 곧 “브루트 포스” 였고 “그리디 알고리즘” 이였다는 걸 이제 와서 깨달은 거였죠…ㅎㅎ 여러 알고리즘 기법들이 있기에 이에 대해서 앞으로 공부하면서 정리할 예정입니다. 오늘은 알고리즘이란 … Read more