파이썬 강의를 들으면서 더욱더 복잡해진 마음을 안고 다시 공부를 시작했다.
강의에서는'왜 알고리즘을 공부해야하는가' 에 대해서 심도깊게 말씀해주셔서 이 부분을 담아두고자 한다.
알고리즘 강의
알고리즘을 하며 언어별 차이과 학습 필요성, 개념보충
Spring, Node, React가 듣기 때문에 Python으로 진행
input/output set이 5~20개정도 있는데 그 모든 것들이 정해진대로 연결이 되어야 통과가 된다.
이 페어들의 연속과 실행시간, 제약까지 생각해야 한다.
파이썬(현재 3.11 버전)으로 코딩 테스트를 할 경우 그런 익스큐션 시간이 없기 때문에 좀 더 편하고 코드가 짧게 나오기 때문에 파이썬을 사용한다.
그렇기에 짧게 작성할 수 있는 파이썬을 선호한다.(왜냐하면 코딩 테스트를 할 때 시간에 제약이 있음)
프로그램의 본질은 input을 가공한 output을 내는 것인데, 그 과정에 있어서 자료구조와 알고리즘은 필수라고 볼 수 없다.
알고리즘이 생략될지언정 자료구조는 생략된 적이 없었다. 따라서 계속 공부를 해야 한다는 점!
결론은 프로그램은 쉽고 빠르고 깔끔하게 작성되는 것이 가장 중요! 따라서 알고리즘이 필요하다~!!!
시간복잡도
시간복잡도란 입력값과 문제를 해결하는데 걸리는 시간과의 상관관계를 말한다.
입력값이 2배로 늘어날 때 문제를 해결할 때 걸리는 시간은 몇배가 늘어나는지 확인하는 것이다.
시간복잡도와 공간복잡도에 대한 부분 참고하기 좋은 블로그