람다표현식과 맵, 필터, 리듀스 (Python)

람다(lambda, )는 본래 수리논리학에서의 함수정의를 추상화한 형식 체계로, 간단히 말해서 이름이 없는 함수 혹은 인라인으로 정의하는 함수로 이해할 수 있다. 수학에서의 람다대수의 정의와 비슷하게 파이썬에서는 다음과 같이 람다함수를 정의한다. lambda {파라미터,…} : {표현식} 람다식은 그 자체로 표현식이며 다음 구성 요소로 작성한다. 키워드 lambda 파라미터 : 컴마로 구분되는 1개 이상의 파라미터. 파라미터는 반드시 1개 이상이어어야 한다.

오일러 프로젝트 67

오일러 프로젝트 67번 문제는 18번 문제와 동일하나 주어지는 데이터의 양이 훨씬 크다. 18번 문제의 경우에는 모든 경로를 계산하는 것이 불가능한 수준은 아니었으나, 이 문제의 가능한 모든 경로는 2^99 가지나 된다. 하지만 우리는 이미 18번 문제를 동적 계획법에 따라 풀어보았고, 이 문제 역시 같은 방식으로 풀어 낼 수 있다.

하스켈에서 메모이제이션 구현하기

하스켈의 메모이제이션 하스켈의 함수는 순수함수이고, 이는 입력이 같다면 항상 같은 결과가 리턴되는 것을 보장한다. 이는 어떤 임의의 함수 f와 그 인자 x가 있을 때 최초 f(x)가 계산되고 나면 그 이후에 f(x)가 필요한 경우에 불필요한 반복 계산이 필요하지 않은 것 처럼 들린다. (왜냐면 f(x)는 이미 이전에 계산되어 값으로 축약되었고, 그 사이에 어떤 일이 있었든지 간에 같은

오일러 프로젝트 66

오일러 프로젝트 66번 문제는 펠 방정식의 최소해에 관한 문제이다. 나이브하게 접근했다가는 결코 풀어낼 수 없을 수준으로 시간이 많이 걸린다. 그리고 그나마 빠른 해법 역시 구현하기 위해 여러 가지 지식과 스킬이 동원된다.  접근 방법을 알고 있더라도 구현이 만만치 않은, 1번부터 현재까지는 최고 난이도의 문제라 할 수 있다. 통상 오일러 프로젝트의 문제들은 순서에 맞게 풀어나갈 필요는 없지만,

LCD 패널 방식으로 숫자를 표시해보기 (파이썬)

LCD 처럼 숫자를 표시하는 코드를 만들어 보자 크기와 출력할 숫자를 입력받는다. 크기는 LCD 표시 요소 하나의 크기를 가리킨다. (크기는 1~10,  숫자는 0~99,999,999)  가로선은 -, 세로선은 | 문자를 통해서 표현하며, 사이즈만큼 길이가 길어진다. 따라서 하나의 문자를 표시하기 위해서는 가로는 size + 2, 세로는 size * 2 + 3 만큼의 공간이 필요하다. 예시 – 출력: 0123456789. size: