내 생각/강의
[Udemy] JavaScript 알고리즘 & 자료구조 마스터클래스_Section 4
호랑구야
2023. 6. 22. 09:00
Section 4: 문제 해결 접근법
문제해결법
알고리즘이란 특정 작업을 달성하기 위한 과정이나 일련의 단계를 뜻한다. 프로그래밍에서 수행하는 거의 모든 작업에는 아주 기본적인 작업 혹은 복잡한 어플리케이션의 구축에서 알고리즘이 포함된다.
1단계: 문제의 이해
- 문제를 자신의 언어로 다시 정의할 수 있나요?
- 문제에 어떤 입력값이 있나요?
- 문제의 해결책에 나와야하는 결과는 무엇인가요?
- 입력값에서 출력값을 도출할 수 있나요? 혹은 문제를 푸는데에 필요한 정보가 충분히 존재하나요?
- 문제의 일부분인 자료의 중요한 부분에 어떻게 표시를 할 수 있을까요?
2단계: 구체적 예제들
예제를 떠올리는 것은 문제를 해결하는데에 도움을 준다. 예시는 문제가 제대로 작동하는지 확인할 수 있는 온정성 검사를 제공한다.
- 몇가지 간단한 예제를 떠올려본다.
- 몇 개의 복잡한 예제로 더 진행한다.
- 빈 입력값에 대한 예제를 떠올린다.
- 유효하지 않은 입력값에 대한 예제를 떠올린다.
3단계: 세부 분석
수행해야 하는 단계를 명시적으로 적는다면, 문제에 푹 빠져 상세사항을 정하기 전에 오래 고민해야하는 개념이나 잘못 이해하는 것이 있는지 확인할 수 있다.
4단계: 해결 또는 단순화
문제를 해결하거나 혹은 해결할 수 없다면, 문제를 단순화시켜야 한다. 단순화란 해결하려는 문제에서 가장 어려운 부분이 무엇인지 찾고, 일단 그 부분을 무시하고서 최대한 간단히 해결책을 작성한다. 그리고 나서 다시 어려웠던 부분을 다시 통합시키는 것이다.
5단계: 되돌아 보기와 Refactor
- Refacotring 질문
- 결과를 확인할 수나요?
- 결과를 다른 방식으로 도출할 수 있나요?
- 한 눈에 이해할 수 있나요?
- 결과나 함수를 다른 문제에 적용할 수 있나요?
- 해결책의 성능을 향상시킬 수 있나요?
- 다른 방식으로 수행할 수 있나요?
- 다른 사람들은 어떻게 이 문제를 해결했나요?
반응형