Please enable JavaScript.
Coggle requires JavaScript to display documents.
알고리즘과 문제 해결 1118 이동현 - Coggle Diagram
알고리즘과 문제 해결 1118 이동현
문제와 문제 해결 절차
-
컴퓨터로 문제를 해결하기 위해서는 추상화, 알고리즘 설계, 자동화의 절차가 필요
추상화: 주어진 문제를 이해하고 분석하여 꼭 필요한 핵심 요소를 추출하고, 문제를 해결하기 쉬운 형태로 표현
알고리즘 설계: 글이나 도형, 흐름선 등으로 문제를 해결하기 위한 작업을 절차에 맞춰 나열함
-
문제의 사전적 정의: 해답을 요구하는 물음
논쟁, 논의, 연구 등의 대상이 되는 것
해결하기 어렵거나 난처한 대상 또는 그런 일
귀찮은 일이나 말썽
어떤 사물과 관련되는 일
계산 문제: 컴퓨터의 계산 능력을 이용하여 해결 가능한 문제로, 산술 연산이나 논리 연산의 조합을 통해 해결할 수 있는 문제를 말하며 연산 문제, 경우의 수 문제, 결정 문제, 최적화 문제
핵심 요소: 문제를 해결하기 위해 반드시 고려해야 하는 요소로, 수행 작업에 영향을 미치는 요소
-
-
-
의사 코드: 가상의 코드라는 의미이며, 프로그래밍 언어와 유사한 형태로 알고리즘을 표현하는 방식
실제 프로그래밍 언어가 아니기 때문에 컴퓨터에서 실행할 수 없다.
프로그래밍 언어: 컴퓨터 프로그램을 만들기 위해 사용하는 언어로, 텍스트 기반 프로그래밍 언어로는 파이썬, C 언어, C++등이 있다.
-
추상화 단계에서는 문제의 복잡성을 제거하여 해결하기 쉬운 형태로 문제를 재표현한다. 문제를 해결하기 위해서는 먼저 주어진 문제를 이해하고 분석해야한다.
문제를 추상화한 결과는 총 4가지로 구분하는데 초기 상태, 목표 상태, 핵심 요소, 수행 작업 등이 있다.
알고리즘 설계에서 알고리즘은 문제를 해결하기 위한 구체적인 방법이나 절차를 의미한다. 추상화를 통해 문제를 재표현한 이후에는 순차, 선택, 반복 구조 등을 이용하여 알고리즘을 설계한다. 알고리즘은 자연어, 의사 코드, 순서도, 프로그래밍 언어를 사용하여 표현할 수 있으며 다음 5가지 조건을 만족할 수 있도록 작성해야 한다.
입력: 필요한 데이터를 입력받을 수 있어야 한다.
출력: 알고리즘이 수행되면 적어도 1개 이상의 결과가 출력되어야 한다.
명확성: 알고리즘을 수행할 때 모호함이 없이 의미가 분명해야 한다
유한성: 알고리즘은 반드시 종류되어야 한다.
수행 가능성: 모든 명령은 수행 가능해야 한다.
자동화 단계는 설계한 알고리즘을 컴퓨팅 기기로 구현하는 프로그래밍 과정과 프로그램의 실행 결과를 분석하고 평가하는 성능 평가 과정을 포함한다. 구현된 프로그램이 원래 해결하고자 했던 문제를 올바르게 해결할 수 있는지, 더 효율적인 해결 방법이 있는지를 확인하며 성능 평가를 수행할 수 있다.
알고리즘의 이해
-
길 찾기 알고리즘: 빠른 경로를 검색
정렬 알고리즘: 인터넷 사이트에서 게시글이나 댓글을 특정 기준에 따라 정렬
추천 알고리즘: 과거의 영상 시청 이력으로 동영상을 추천해 주고, 구매 이력을 바탕으로 상품을 추천해 주는 것