1. SW 문제 해결 능력
1) SW 문제 해결 역랑
- 제약 조건과 요구사항을 이해하고 최선의 방법을 찾아내는 능력
※ 한 문제를 풀고 3명 이상의 풀이법을 보기
- 문제 해결 역량은 추상적인 기술이다.
- 문제 해결 역량을 향상하기 위해서 훈련이 필요하다.
2) 문제 해결 과정
- 문제를 읽고 이해한다. (3회독)
- 어떻게 해결할지 계획을 세운다.
- 계획을 검증한다. (시간 복잡도, 공간 복잡도)
- 프로그램으로 구현한다.
- 어떻게 풀었는지 돌아보고, 개선한 방법이 있는지 찾아본다.
- 1시간이 지나면 풀었든 못 풀었든 다른 사람들의 코드를 찾아본다. (3명 이상)
3) 알고리즘
- 어떠한 문제를 해결하기 위한 절차라고 볼 수 있다.
2. 알고리즘 성능
1) 시간 복잡도
- 최선의 경우 : 빅 오메가 표기법 사용
- 최악의 경우 : 빅 오 표기법 사용
- 평균적인 경우 : 빅 세타 표기법 사용
2) 공간 복잡도
- 메모리 사용량
3) 빅오 표기법
- 시간 복잡도 함수 중에서 가장 큰 영향력을 주는 n에 대한 항만을 표시
3. 재귀 호출
1) 반복과 재귀
- 반복은 수행하는 작업이 완료될 대 까지 계속 반복
- 재귀는 주어진 문제의 해를 구하기 위해 동일하면서 더 작은 문제의 해를 이용하는 방법
- 재귀는 함수로 구현한다.
- 재귀는 기본 부분과 유도 부분으로 구성된다.
4. 재귀 호출 - 피보나치수열
public static int fibonacci(int number) {
if (number == 1) {
return 1;
} else if (number == 2) {
return 1;
} else {
return fibonacci(number - 1) + fibonacci(number - 2);
}
}
※ 참고 : https://adjh54.tistory.com/194
[Java/알고리즘] 재귀 함수(Recursion Function) 이해하기
해당 글에서는 재귀함수에 대해 이해하며 다양한 예시와 재귀함수를 이용한 알고리즘을 기반으로 이해를 돕기 위해 작성한 글입니다. 1) 재귀함수(Recursion Function) 💡 재귀함수(Recursion Function)란?
adjh54.tistory.com
'Algorithm > Study' 카테고리의 다른 글
Tree, BFS (0) | 2024.02.06 |
---|---|
LinkedList (0) | 2024.02.05 |
Stack, Queue (0) | 2024.02.04 |
부분집합, 비트연산, 바이너리 카운팅 (0) | 2024.02.01 |
완전 탐색 (0) | 2024.01.30 |