1. Understand the problem

  • 문제를 자신의 방식으로 다시 말할 수 있는지?
  • 문제에 들어가는 입력 데이터는 무엇인지?
  • 해결책에서 얻을 수 있는 결과는 무엇인지?
  • 문제를 해결할 충분한 정보를 가지고 있는지?
  • 함수나 변수 등의 이름은 어떻게 정할 것인가?

2. Explore examples

  • 간단한 예제로 시작하기
  • 더 복잡한 예제 진행하기
  • 빈 입력값을 가진 예제로 테스트하기
  • 잘못된 입력값을 가진 예제로 테스트하기

3. Break it down

  • 수행해야 할 단계를 명시적으로 기록하기

4. Solve or Simplify

  • 문제를 해결하거나 더 간단한 문제 해결하기

5. Look back and Refactor

  • 결과를 확인할 수 있는지?
  • 결과를 다르게 할 수 있는지?
  • 한번에 코드를 이해할 수 있는지?
  • 다른 문제에서도 결과값이나 함수를 사용할 수 있는지?
  • 수행 시간이 적절한지?
  • 다른 방법으로 문제를 해결할 수 있는지?
  • 다른 사람들은 이 문제를 어떻게 풀었는지?

+ Recent posts