1. 문제해결의 개요
- 문제 : 현재 상태의 변화로 인해 원하는 방향의 목표가 생기는 것
- 단순 vs 복잡 / 해결 O vs X / 반복성 vs 일회성
- 문제해결
- 현재상태와 목표 상태의 차이를 해결한 결과물
- 현재 상태에서 목표상태에 도달하기 위한 필요요소 (ex, 시간 노력 사고 등등)
- 문제해결이라는 결과물을 만들어내기 때문에 요소의 투입 정도에 따라 결과물의 질이 달라질 수 있음.
- 문제해결 과정 :
- 문제(현재 상태) -> 문제해결(목표상태) 도달 위한 일련의 인지적 처리 및 사고활동의 과정을 순차적으로 나열한 것
- 컴퓨팅 기반 문제 유형
| 컴퓨팅 기반 문제 유형 | |||
| 결정문제 | 탐색문제 | 연산 가능 문제 | 최적화 문제 |
| 대답이 "예 / 아니오"로 이루어지는 문제, 조건&요소 기반 이론 전개 |
답이 될 수 있는 요소를 체계적으로 찾아봄 |
연산을 통해 계산 | 최댓값 / 최소값으로 효율성을 높임 |
| 일반적 문제해결 과정 | 컴퓨팅 기반 문제해결과정 |
| 주어진 상황과 조건을 바탕으로 문제해결을 위한 효과적인 방안을 탐색해내는 일 문제를 풀어가는 당사자의 경험 및 지식, 성향 등에 따라 같은 문제 상황이라 할지라도 다르게 해결과정을 제안할 수 있음. |
컴퓨팅 과학의 원리를 적용하여 문제를 해결했을 때 그 결과가 효율적이어야 함. |
| 문제 이해 → 해결방안고안 → 해결책 선택 → 실행 및 평가 | 문제 이해 → 해결과정설계 → 프로그래밍 구현 → 결과물 확인 |
2. 문제해결의 절차
- 절차적 문제해결의 과정
- 절차적?
- 어떤 순서에 의해 하나씩 단계별로 실행하는 일
- 반드시 해당되는 단계에 따라 앞 뒤 순서가 정해져 있음.
- 절차 혹은 순서란 문제해결을 위한 인지적 처리 과정을 정해진 순서에 따라 하나씩 단계를 나열하는 것
- == 절차적 사고
- 절차적?
- 알고리즘
- 어떤 주어진 문제를 해결하기 위한 절차적 순서나 방법
- 현재 상태와 목표 상태의 차이를 해결하기 위한 과정을 나열하는 것
- 문제해결과정을 절차적, 순차적으로 나열하는 것
- 어떤 문제를 해결하기 위한 사고과정 혹은 명령어들의 유한집합
- 주어진 문제해결을 위한 논리적 절차나 방법
- 문제해결을 위한 방법
| 시행착오로 풀기 | 나누어풀기(분할정복) | 거꾸로 풀기 | 경우의 수 대입해 풀기 |
- 알고리즘 설계방법
| 상향식 | 처음의 커다란 덩어리 문제를 점차 작은 문제로 해결책을 세분화 하는 법 |
| 하향식 | 작은 문제를 먼저 해결하고 해결한 작은 문제를 모아 점차 큰 문제를 해결하는 방법 |
- 알고리즘의 특성
- 모호하지 않은 정확성
- 실행 가능한 단계들의 집합으로 구성
- 단계들은 정해진 순서에 의하여 실행됨 (단, 반드시 종료되어야함)
- 효율적으로 그 가치가 높아짐
- 알고리즘의 표현방법
| 자연어 | 한글 / 영어, 알고리즘 기술의 용이성, 자연어의 모호성에 의해 명확성 유지 어려움 |
| 순서도 | 좋은 알고리즘 표현법이나 규모가 커지면 표현하기 어려움 |
| 의사코드 | 프로그래밍 언어에 가까움. 특정 언어의 구조에 제약 없음. 실행 위해서는 프로그래밍 언어로 코딩 |
- 알고리즘의 성능
- 문제를 해결하는 방법이 하나인 경우도 있지만 여러가지인 경우가 대부분임
- 알고리즘은 문제해결을 위한 단순한 해결과정의 절차적인 나열이 아님.
- 다양한 요소를 고려하여 최선의 선택을 해야함
- 최선의 선택을 할 수 있게 알고리즘을 나열하여 효율성을 높임(=최적화) <- 알고리즘 성능 고려
- 측정 기준
| 정확성 | 작업량 / 수행량 | 메모리 사용량 | 단순성 / 명확성 | 최적성 |
- 알고리즘에 따른 문제해결의 차이 : 어떤 알고리즘을 선택하느냐에 따라 정확도와 시간에 차이가 생김
| 효율성 분석방법 |
시간 복잡도 | 소요 시간 기준으로 효율성을 분석함. 사용되는 연산자를 처리하는 횟수가 적을 수록 효율적임. (= 시간복잡도가 적다) 시간복잡도 ↓ & 연산자 사용 횟수 ↓ == 효율성이 높은 알고리즘! |
| 공간 복잡도 | 메모리 공간을 적게 사용할 수록 효율성이 높다 |
'이론공부 > 문제해결, 알고리즘' 카테고리의 다른 글
| 다양한 알고리즘 기법 / 단순하게 문제풀기 (1) | 2025.06.21 |
|---|---|
| 자료탐색 알고리즘 (2) | 2025.06.21 |
| 그리디 알고리즘 (0) | 2025.06.21 |
| 자료정렬 알고리즘 (0) | 2025.06.20 |
| 문제해결 2 - 자료구조와 문제해결, 논리적사고 기반, 컴퓨팅 사고 기반 (1) | 2025.06.20 |