알고리즘 문제를 풀때도 패턴이 있다.
물론 잠재적으로 자연스럽게 패턴을 찾는것이 최선이지만
그렇지 못하다면 패턴을 대입해보는것도 한가지 방법이다.
예를 들어,
Bottom-up 방식을 Top-down대신에 적용하기,
Stack을 사용하기,
divide and conquer방식을 사용하기
훈련하는 방식은
적용할 패턴 리스트를 만드는 것에서 시작한다.
어려웠던 패턴들을 확실히 기억하도록 하자.
1) Brute Force
모든 방법을 실행하고 옳은 방법인가를 확인하자.
이 방법은 처음보는 문제를 풀때 처음 시도할만한 방법이다.
또한 대부분의 문제에 적용할수 있고, 어디서부터 시작해야할지 모르는 경우에 적용할수 있다.
물론 효율적이지 못한 알고리즘이 나올 확률이 크지만, 이것이 문제를 풀어가는 시작점이 될것이다.
2) Greedy
현재 가장 좋은 방법을 택하는것
일반적으로 Brute force보다는 더 효율적이다.
3) Use a Hash Table
그냥 hash map, 혹은 array를 이용하면된다
No comments:
Post a Comment