///
Search
▶️

문제 해결에 대하여

1. 컴퓨터를 공부하면서 반드시 숙지해야 할 것

Tip
문제 해결이 목적, 컴퓨터 프로그래밍은 그 수단입니다.
문제해결은 컴퓨터라는 연산 장치로 사람이 빠르게 할 수 없는 연산 같은 것을 컴퓨터로 효율적이게 처리하는 것을 예로 들 수 있습니다.
프로그래밍 언어란, 사람이 컴퓨터와 소통하기 위한 언어로, 각각의 목적에 따라 여러 종류의 언어가 존재합니다.

2. 프로그램의 실행 단계

프로그램의 실행 단계
인간이 이해할 수 있는 고급 프로그래밍 언어 => 컴파일러 => 어셈블리어 => Binary(0101...) => 프로그램 실행

3. 문제 해결의 절차

문제 해결의 절차
문제를 정확히 이해합니다.
문제를 해결하는 알고리즘을 설계합니다.
설계한 알고리즘이 문제를 해결한다는 것을 수학적으로 증명합니다.
알고리즘이 제한 시간 내에 동작한다는 것을 보입니다.(시간복잡도)
알고리즘을 코드로 작성합니다.

4. 문제 해결의 기본

문제 해결의 기본
문제 해결을 위해 고려해야 하는 모든 경우를 파악해야 합니다.(탐색 공간)
가장 첫 번째로 시도해보아야 하는 알고리즘은 완전탐색(Brute-Force Algorithm)
완전탐색으로 시간안에 문제 해결이 되지 않을 때는 알고리즘을 개선해 나가야 합니다.
시간복잡도 계산을 위해 설계한 알고리즘에 대한 의사코드를 작성해야 합니다.
완전탐색이 시간안에 동작하지 못할 때 개선할 수 있는 알고리즘 : 이진 탐색, 분할 정복, 동적 계획법(DP), Greedy, Graph Algorithm(DFS, BFS, 최단거리 등) 등