(항해10일차) 220316 알고리즘 5일차
알고리즘 주간이 끝나간다.
오늘은 스터디에서 시간이 없어 풀지 못한 문제들을 풀고
남은 시간에는 풀었던 문제들을 다시 보면서 어떻게 풀어야 할지 생각해봤다.
처음 방법과 완전히 똑같은 것도 있었지만
어떤 문제들은 처음 방법보다 더 간단해지는 경우도 있었다.
문제푸는 방식과 관련해서 오늘 튜터님께 질문을 했다.
한 줄 짜리 압축시켜 놓은 답변과 for반복문이나 if함수를 사용한 긴 답변을 비교했을 때
답의 길이는 좋은 알고리즘 풀이와 크게 연관이 없다는 말씀을 들었다.
물론 시간복잡도가 단순한 짧은 풀이는 훌륭하지만 그렇지 않은 경우도 있고,
잘 쓰지 않는 내장함수를 가져다 쓰기도 하기 때문에
오히려 문제의 구조를 파악하는게 훨씬 중요하다.
하지만 내가 쓴 filter 보다 splite를 사용했을 때 시간이 단축됐다면
왜 단축됐는지 고민하고 찾아보는 것은 중요하다.
정리를 해보자면 알고리즘 공부는
1. 문제를 보고 처음부터 끝까지의 식을 구상한다.
2. 구상한 식에 맞는 코드를 알고 적절하게 사용한다.
3. 어떤 함수가 코드 안에서 어떻게 동작하는지 생각한다.
를 고민하면 좋을 듯 하다.
https://replit.com/@sungji226/hanghae99algorijeum-gico-juca-React#step1/03_question.js
https://replit.com/@sungji226/hanghae99algorijeum-gico-juca-React#step1/09_question.js
https://replit.com/@sungji226/hanghae99algorijeum-gico-juca-React#step1/19_question.js
https://replit.com/@sungji226/hanghae99algorijeum-gico-juca-React#step1/25_question.js
https://replit.com/@sungji226/hanghae99algorijeum-gico-juca-React#step1/27_question.js
https://replit.com/@sungji226/hanghae99algorijeum-gico-juca-React#step1/23_question.js