matplotlib의 기본 사용법 및 다른 시각화 라이브러리

오늘은 파이썬의 시각화 부분에서 가장 널리 쓰이고 있는 matplotlib에 대해서 알아보도록 하자.

matplotlib을 사용할 때 주로 서브패키지인 pyplot을 사용한다. pyplot은 MATLAB의 인터페이스와 유사하게 작동할 수 있도록 하여 MATLAB을 사용하는 사용자층이 쉽게 matplotlib으로 옮겨오도록 하고 있다. 문제는 MATLAB의 인터페이스가 그모양이어서 그런지 모르겠는데, matplotlib의 인터페이스가 일관성도 없는 편이고 그다지 객체지향적이지도 않아서 사실상 API 문서만으로도 사용이 어렵고 관련 예제를 보면서 코드를 따라써야 하는 수준으로 처리해야 하는 경우가 많다는 것이다.

matplotlib의 기본 사용법 및 다른 시각화 라이브러리 더보기

파이썬으로 이진 탐색 구현하기

이진 탐색(binary search)은 정렬된 데이터에서 특정한 값을 아주 빠르게 찾는 방법이다. N개의 데이터 중에서 특정한 값 x를 찾을 때, 최악의 경우 N번의 비교가 필요한데, 이진 탐색의 경우 최대 log_{2}N만큼의 비교를 하게 된다. 즉 자료의 크기가 클수록 선형 탐색에 비해 성능이 매우 우수해진다. 다만 이진 탐색은 자료가 정렬되어 있다는 전제가 필요하다. (이 때문에 컴퓨터 과학에서는 정렬이 매우 중요하고, 성능이 좋은 정렬 알고리듬을 만들기 위해 많은 노력이 있어왔다.)

파이썬으로 이진 탐색 구현하기 더보기

생일 문제

30명의 사람이 있을 때, 이 중 생일 같은 사람이 최소 2명 있을 확률을 구하고 싶다. 어떻게 계산할 수 있을까? 이러한 문제를 생일 문제라 한다. 흥미로운 점은 생일 문제가 우리의 직관을 비웃는 것 같은 결과를 보인다는 것이다.

예를 들어 당신이 누군가를 만났다고 하자. 그 사람이 당신과 생일이 같을 확률은 얼마일까? 당신의 생일이 정해져 있으므로 그 사람의 생일은 365일 중 같은 날인 하루여야 한다. 이 때의 확률은 1/365로 약 0.274% 밖에 안된다. 이처럼 1년의 날 수가 365일이나 되기 때문에 생일이 같아질 확률이 매우 작아 보인다.

생일 문제 더보기

표현식이 무엇인지 알아보자

오늘은 표현식에 대해서 좀 이야기해볼까 한다. 표현식(Expressioin)은 너무 직역한 단어라 좀 이상한 감이 없잖아 있는데, 딱히 대체할만한 말이 떠오르지 않는다. 영어권에서는 표현식 대신에 평가식이라는 말도 사용한다. 필수적이거나 중요한 개념은 아닌데, 프로그래밍 언어 가이드를 보다보면 자주 등장하는 용어이고, 알고 있다면 학습에 도움이 될 수는 있겠다 싶다.

표현식이 무엇인지 알아보자 더보기

수퍼마켓 계산줄

https://www.codewars.com/kata/57b06f90e298a7b53d000a86

수퍼마켓의 계산 줄을 처리하는데 소요되는 전체 시간을 구하는 프로그램을 작성한다.

요건

문제의 입력으로는 정수 리스트와 정수값 하나가 제시된다. 리스트는 고객을 의미하며, 다른 정수값은 계산대의 개수이다. 리스트 내의 각 정수값은 개별 고객으로 각 고객이 계산을 마치는데 필요한 시간을 정의한다.

규칙

  • 빈 계산대가 없으면 나머지 손님은 모두 기다려야 한다.
  • 빈 계산대가 나타나면 계산줄을 무조건 앞에서부터 처리된다.
  • 모든 손님이 계산대 통과를 완료해야 한다.
수퍼마켓 계산줄 더보기