Algorithm

문제 해결 5단계 - 복습하고 재구성하기

주인장 꼬비 2022. 7. 17. 12:56

재구성(Refactoring) 할때 생각할 수 있는 질문

- 결과를 확인할 수 있는가?

- 결과를 다른 방식으로 도출할 수 있는가?

- 한눈에 보고 이해할 수 있는가?

- 결과나 방법을 다른 문제해도 적용할 수 있는가?

- 해결책의 성능을 향상시킬 수 있는가?

- 재구성할 수 있는 다른 방법을 생각할 수 있는가?

- 다른 사람들은 이 문제를 어떻게 해결하는지?

 

결과나 방법을 다른 문제해도 적용할 수 있는가?

문제를 해결함으로써 얻을 수 있는 큰 이점 중 하나는 직감을 발달시켜 다른 문제를 해결할 수 있는 직관력을 길러준다는 것이다. 

따라서 해결책을 작성할 때마다 잠시 멈추고 이 해결책이나 이 문제가 이전에 접했던 다른 문제와의 유사점이 있는지 자문해 보는 것이 좋다.

 

해결책의 성능을 향상시킬 수 있는가?

주로 시간 복잡도와 공간 복잡도로 분석한다.

 

재구성할 수 있는 다른 방법을 생각할 수 있는가?

예를 들어 회사의 스타일 지침을 따라 코드를 작성하는지? 혹은 언어의 규칙을 따르고 간격이 일정한지를 생각해볼 수 있다.

 

다른 사람들은 이 문제를 어떻게 해결하는지?

무언가를 작성하면서 코드를 js에서는 찾을 수 없더라도 검색을 하다가 다른 사람이 자바나 파이썬에서 작성한 코드를 찾아서 나의 코드와 비교할 수도 있다. 이런 작업을 통해 새로운 개념과 다른 접근법을 알 수도 있다.

 

TIP.  정규 표현식을 사용하는 것 보다 charCode 를 사용하는 것이 55% 더 빠르다.

 

 

 

본 내용은 작성자가 (Udemy) JavaScript 알고리즘 & 자료구조 마스터클래스 강의를 듣고 정리 및 메모한 내용입니다.  오역 및 오개념이 있을 수 있으니 바로잡기 위해 문제가 있는 경우 댓글 남겨주시면 매우 감사하겠습니다.

https://www.udemy.com/course/best-javascript-data-structures/

 

JavaScript (JS) Algorithms and Data Structures Masterclass

정렬, 리스트, 힙 스택을 포함한 12개의 알고리즘과 10개 이상 자료구조 학습으로 기술 면접 완벽하게 대비!

www.udemy.com