어떻게 문제를 풀 것인가?

김성수·2023년 5월 30일
0

알고리즘

목록 보기
25/28

들어가면서

알고리즘 문제는 수학 문제를 푸는 것과 비슷하다.
수학 문제를 효과적으로 풀이하는 방법이 내재되어 있는 사람이 알고리즘 문제를 푸는데 유리할 수 밖에 없다.
그렇다면 수학 문제는 어떻게 풀이해야할까?
저자 G.폴리아의 "어떻게 문제를 풀 것인가"에서 소개하는 문제를 푸는 방법을 소개하고
내 문제 풀이에 적용해봤다.

어떻게 문제를 풀 것인가?

G.폴리아 저자는 아래와 같이 문제 풀이 방식을 제시한다.

  1. 문제를 이해한다.
    주어진 문제의 요구사항과 조건을 분명하게 파악해야 한다.
    문제를 다양한 각도에서 바라보고, 필요한 정보를 추출하는 것이 중요하다.
  2. 계획 세우기.
    문제를 해결하기 위한 계획을 세운다. 이때 중요한 것은 어떠한 방식으로 문제를 풀 것인지 결정하는 것이다. 예를 들어 알고리즘 문제를 푼다면 어떠한 알고리즘과 자료구조를 사용하여 문제를 풀 것인지 계획해야 한다.
  3. 계획 실행하기
    계획한 풀이 방법을 실행해본다. 계획을 구체화하고 단계별로 실행해나간다.
    중간 결과를 확인하고 필요한 조치를 취하며, 문제 해결을 위한 적절한 도구나 방법을 사용한다.
    문제를 해결하는 과정에서 어려움이 발생하면 다시 돌아가서 계획을 수정하고 실행할 수 있다.
  4. 검토하기
    문제를 해결한 후 얻은 답변이 올바른지 확인하는 것이 중요하다. 결과를 검토하고 문제에서 주어진 요구사항과 조건에 부합하는지 확인한다. 또한 해결과정에서 놓친 부분이 있는지, 다른 방법으로 접근할 수 있는지 확인할 수도 있다.

저자의 내용에서 나의 견해를 덧붙이다.

보통 문제 풀이 공부를 한다고 하면 내가 모르는 부분이 나왔을 때 찾아볼 수 있는 기회가 있다.

따라서, 문제를 이해하고 내가 무엇을 모르는지 파악하는 것이 중요하다.

빠르게 캐치하고 모르는 부분을 배운 뒤 다시 문제를 풀이한다.

.

문제를 다 풀이하고 난 뒤 해당 문제에서 사용된 알고리즘과 자료구조 패턴을 암기한다.

모든 공부 과목이 그렇듯 결국 암기하는 과정이 필요하다.

단순 암기는 기억이 오래가지 않고 비효율적이다.

해당 알고리즘이 사용되는 다양한 알고리즘 문제를 내 수준에서 약간 높은 수준의 난이도로

기간을 두고 계속해서 풀어보는 것이 장기기억화 + 실력 상승에 좋다.

.

profile
깊이 있는 소프트웨어 개발자가 되고 싶습니다.

0개의 댓글