1. 컴퓨터를 공부하면서 반드시 숙지해야 할 것
Tip
•
문제 해결이 목적, 컴퓨터 프로그래밍은 그 수단입니다.
•
문제해결은 컴퓨터라는 연산 장치로 사람이 빠르게 할 수 없는 연산 같은 것을 컴퓨터로 효율적이게 처리하는 것을 예로 들 수 있습니다.
•
프로그래밍 언어란, 사람이 컴퓨터와 소통하기 위한 언어로, 각각의 목적에 따라 여러 종류의 언어가 존재합니다.
2. 프로그램의 실행 단계
프로그램의 실행 단계
•
인간이 이해할 수 있는 고급 프로그래밍 언어 => 컴파일러 => 어셈블리어 => Binary(0101...) => 프로그램 실행
3. 문제 해결의 절차
문제 해결의 절차
•
문제를 정확히 이해합니다.
•
문제를 해결하는 알고리즘을 설계합니다.
•
설계한 알고리즘이 문제를 해결한다는 것을 수학적으로 증명합니다.
•
알고리즘이 제한 시간 내에 동작한다는 것을 보입니다.(시간복잡도)
•
알고리즘을 코드로 작성합니다.
4. 문제 해결의 기본
문제 해결의 기본
•
문제 해결을 위해 고려해야 하는 모든 경우를 파악해야 합니다.(탐색 공간)
•
가장 첫 번째로 시도해보아야 하는 알고리즘은 완전탐색(Brute-Force Algorithm)
•
완전탐색으로 시간안에 문제 해결이 되지 않을 때는 알고리즘을 개선해 나가야 합니다.
•
시간복잡도 계산을 위해 설계한 알고리즘에 대한 의사코드를 작성해야 합니다.
•
완전탐색이 시간안에 동작하지 못할 때 개선할 수 있는 알고리즘 : 이진 탐색, 분할 정복, 동적 계획법(DP), Greedy, Graph Algorithm(DFS, BFS, 최단거리 등) 등