Language/Python

[Python] python으로 알고리즘을 공부해야 하는 이유

ooeunz 2019. 10. 9. 14:28
반응형

파이썬은 처음 배우기 좋은 언어로 많이들 추천하는 언어이다. 파이썬은 초보 프로그래머가 어려운 문법에 허우적거리게 만들지 않고 프로그래밍의 핵심적인 개념을 정말 쉽게 배울 수 있게 만드는 훌륭한 언어이다. 파이썬을 통해서 좋은 프로그래밍 스타일을 한번 배워두면 다른 언어를 습득하는 것이 무척 쉬울 뿐만 아니라 다른 언어로 만든 프로그램마저도 고급스러워지는 효과를 발휘하곤 한다.

 

파이썬은 컴퓨터 프로그래밍 교육을 위해 많이 사용하지만, 기업의 실무를 위해서도 많이 사용하는 언어이다. 그 대표적인 예가 바로 구글이다. 필자는 구글에서 만든 소프트웨어의 50% 이상이 파이썬으로 작성되었다는 이야기를 들었다. 이외에도 많이 알려진 예를 몇 가지 들자면 온라인 사진 공유 서비스 인스타그램(Instagram), 파일 동기화 서비스 드롭박스(Dropbox)등이 있다.

또한 파이썬 프로그램은 공동 작업과 유지 보수가 매우 쉽고 편하다. 그 때문에 이미 다른 언어로 작성된 많은 프로그램과 모듈이 파이썬으로 재구성되고 있다. 국내에서도 그 가치를 인정받아 사용자 층이 더욱 넓어지고 있고, 파이썬을 사용해 프로그램을 개발하는 업체들 또한 늘어 가고 있는 추세이다.

 

최근에는 DataScience가 새로운 블루오션으로 떠오르면서 파이썬의 위상이 더욱 상승했다. 아래는 2019년 2월의 자료로 파이썬이 세계에서 가장 사랑받는 언어 중 하나라는 것을 알 수 있다.

 

파이썬이 좋다는 건 알겠다. 많이 사용하는 언어라는 것도 알겠다.

그런데 왜 알고리즘을 풀때 파이썬을 사용해야 한다는 것일까?

 

1. 대다수의 자료구조를 지원한다.

파이썬은 대다수의 자료구조들이 이미 구현되어있고 그것을 모듈 형태로 불러와 손쉽게 사용할 수 있다. 그러므로 알고리즘을 풀면서 자료구조를 구현해야 한다거나와 같은 불필요한 시간낭비를 줄일 수 있다.

 

2. 짧은 코드길이.

위에서 이야기했듯 대다수의 자료구조가 구현되어있다. 그리고 뿐만 아니라 파이썬은 다른 low level 언어들에 비해 짧은 코드로 코드를 짤 수 있다. 이것은 우리가 알고리즘을 풀다가 코드를 처음부터 다시 짜야할 경우 부담감을 많이 낮추어 줄 수 있다는 것과 같은 말이다.

 

3. 문자열 다루기가 쉽다.

파이썬을 다루어 본 사람들은 모두 이 말을 공감할 것이다. 파이썬은 문자열 다루기가 매우 쉽다. 우리의 스트레스를 완화시켜 줄 것이다.

 

4. 오버플로우 걱정이 없다.

파이썬은 오버플로우 걱정이 없다. 사소하지만 짜증 나는 문제인 오버플로우는 아마 low level language로 알고리즘을 짜 본 사람이라면 누구나 공감해보았을 것이다. 막상 알고리즘을 풀다가 오버플로우가 발생하면 그것을 찾는 것 또한 쉽지 않다. 그리고 파이썬의 이러한 이 점들은 우리에게 알고리즘 자체에만 집중할 수 있게 도와준다.

 

5. 이미 대다수의 기업들이 코딩 테스트에서 파이썬을 지원한다.

해가 지날수록 대다수의 기업들이 코딩테스트에서 파이썬을 지원하고 있다. 한 알고리즘 교육 기업의 조사 자료에 따르면 현재 알고리즘에 대표적인 언어 c++과 그 수치가 유사하다.

 

하지만 여기서 주의할 점이 있다. 이 글을 작성하는 기준은 입사 코딩테스트 기준이다. 만약 알고리즘 대회를 나가는 것이 목표라면 c++언어를 주로, python을 서브로 공부하는 것을 추천하는 바이다.

 

Reperence

https://wikidocs.net/book/1

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

 

파이썬을 공부해본 사람들은 한번쯤 들어보았을 만한 대표적인 슬로건이 있다.

“Life is short, you need python!” (인생은 너무 짧으니 파이썬이 필요해!)

반응형