📌 강의 자료
Google Colaboratory
📌 강의 내용
알고리즘
- 주어진 문제를 해결하기 위한 명확하고 정확한 절차나 규칙의 집합
- 문제를 이해하고, 문제를 분석하며, 해결책을 찾아내는 데 필요한 강력한 생각의 도구
알고리즘의 특성
- 명확성 : 각 단계마다 명확하게 정의되어야 하며, 모호성이 없어야한다
- 유한성 : 유한한 횟수의 단계를 거친 후에 종료해야한다
- 효과성 : 각 단계는 실행 가능해야 하고, 해당 단계를 수행하는 데 필요한 시간과 리소스가 최소화되어야한다
- 입력 : 0 또는 그 이상의 명확하게 정의된 입력을 가지고 있어야한다
- 출력 : 최소 하나 이상의 명확하게 정의된 출력을 생성해야한다
문제 풀이 접근법
- 구주이배
- 구하는 것이 무엇인가 (문제이해)
- 주어진 것이 무엇인가 (문제이해, 입력, 제약조건)
- 이것을 어떻게 활용할 것인가 (어떤 알고리즘으로 대응할 것인가)
- 내가 배운 것 중 어떤 알고리즘으로 해결할 것인가 (알고리즘 종류)
- 문제 이해
- 주어진 문제 파악하기
- 요구사항 파악하기
- 예외사항 파악하기
- 문제 분석
- 의사 코드 확용하기 : 문제를 해결하기 위한 로직과 과정을 단계별로 나누어 적는다
- 분할 정복 : 주어진 문제를 더 작고 더 쉽게 해결할 수 있는 부분 문제로 나눈 다음, 작은 문제들을 각각 해결하고 이들의 해결책을 합쳐서 원래의 문제를 해결한다