목차
문제 해결 전략
1. ASK questions
- 문제에 대해 이미 알고 있는 것은?
- 해답을 찾기 위해 처리해야 할 정보는 무엇인가?
- 해답은 어떻게 보이는가?
- 어떤 종류의 특별한 경우가 존재하는가?
- 해법을 찾아냈다는 것을 어떻게 알게 될 것인가?
2. Look for familiar things [익숙한 것을 찾아보자]
- 절대로 바퀴를 다시 발명하지 않도록!
- 유사한 문제들이 다른 형태로 반복 등장할 것이다.
- 좋은 프로그래머는 이전에 풀었던 작업이나 작업의 일부를 알아보고 해결방법을 알아낸다.
3. divide and Conquer [분할 정복]
- 큰 문제를 작은 문제들로 나누어 해결한다.
- 추상화 개념을 적용한다.
- 분할 정복 방식은 각 서브 태스크가 처리될 수 있을 때까지 계속하여 적용될 수 있다.
문제를 해결하는 과정을 Algorithm이라고 한다.
Algorithm
- 유한한 자료, 유한한 계산 시간, 명확한 명령어
- 원어 발음은 "앨거리듬"에 가까움
Abstract Step -> Concrete Step으로 바꿔줘야 함.
Parameters
- 문제안에 변수 (특정 값이 아님)
instance of a problem
- parameters에 특별한 값을 할당해줄 경우 그때 instance가 된다.
solution to an instance
- answer to the instance
컴퓨터를 통한 문제 해결 과정
- 분석 및 명세 단계
- 알고리즘 개발 단계
- (프로그램) 구현 단계
- 유지보수 단계
알고리즘을 잘못 설계 한경우 언제든지 되돌아갈 수 있음. (Interaction) -> 비용 발생은 신경 x
Top down design (하향식 설계) - 수행하려는 작업 중심
Object oriented design(객체 지향 설계) - 해결에 관계된 데이터 중심
Summaryt of Methodology
- 문제 분석
- 주요 작업의 목록화
- 남은 모듈 작성
- 필요시 , 재배치와 수정
하향식 설계
- 모든 단계가 구체화될 때까지 레벨이 내려갈 수 있다.
- (후속) 문제의 이름이 다음 하위 레벨의 모듈이 된다.
'학교 > 컴퓨터학개론' 카테고리의 다른 글
[컴퓨터학개론 20장]- Search and Sort (0) | 2022.07.04 |
---|---|
[컴퓨터학개론 19장] - Algorithms (0) | 2022.07.04 |
[컴퓨터 학개론 17장] - Expressing Alogorithms (0) | 2022.07.04 |
[컴퓨터학개론 16]- Assembly Language (0) | 2022.07.03 |
[컴퓨터학개론 15장]- Machine Language (0) | 2022.07.03 |
문제 해결 전략
1. ASK questions
- 문제에 대해 이미 알고 있는 것은?
- 해답을 찾기 위해 처리해야 할 정보는 무엇인가?
- 해답은 어떻게 보이는가?
- 어떤 종류의 특별한 경우가 존재하는가?
- 해법을 찾아냈다는 것을 어떻게 알게 될 것인가?
2. Look for familiar things [익숙한 것을 찾아보자]
- 절대로 바퀴를 다시 발명하지 않도록!
- 유사한 문제들이 다른 형태로 반복 등장할 것이다.
- 좋은 프로그래머는 이전에 풀었던 작업이나 작업의 일부를 알아보고 해결방법을 알아낸다.
3. divide and Conquer [분할 정복]
- 큰 문제를 작은 문제들로 나누어 해결한다.
- 추상화 개념을 적용한다.
- 분할 정복 방식은 각 서브 태스크가 처리될 수 있을 때까지 계속하여 적용될 수 있다.
문제를 해결하는 과정을 Algorithm이라고 한다.
Algorithm
- 유한한 자료, 유한한 계산 시간, 명확한 명령어
- 원어 발음은 "앨거리듬"에 가까움
Abstract Step -> Concrete Step으로 바꿔줘야 함.
Parameters
- 문제안에 변수 (특정 값이 아님)
instance of a problem
- parameters에 특별한 값을 할당해줄 경우 그때 instance가 된다.
solution to an instance
- answer to the instance
컴퓨터를 통한 문제 해결 과정
- 분석 및 명세 단계
- 알고리즘 개발 단계
- (프로그램) 구현 단계
- 유지보수 단계
알고리즘을 잘못 설계 한경우 언제든지 되돌아갈 수 있음. (Interaction) -> 비용 발생은 신경 x
Top down design (하향식 설계) - 수행하려는 작업 중심
Object oriented design(객체 지향 설계) - 해결에 관계된 데이터 중심
Summaryt of Methodology
- 문제 분석
- 주요 작업의 목록화
- 남은 모듈 작성
- 필요시 , 재배치와 수정
하향식 설계
- 모든 단계가 구체화될 때까지 레벨이 내려갈 수 있다.
- (후속) 문제의 이름이 다음 하위 레벨의 모듈이 된다.
'학교 > 컴퓨터학개론' 카테고리의 다른 글
[컴퓨터학개론 20장]- Search and Sort (0) | 2022.07.04 |
---|---|
[컴퓨터학개론 19장] - Algorithms (0) | 2022.07.04 |
[컴퓨터 학개론 17장] - Expressing Alogorithms (0) | 2022.07.04 |
[컴퓨터학개론 16]- Assembly Language (0) | 2022.07.03 |
[컴퓨터학개론 15장]- Machine Language (0) | 2022.07.03 |