반응형
반응형

https://pypi.org/project/matrix/

 

matrix

Generic matrix generator.

pypi.org

matrix 3.0.0

Generic matrix generator.

Installation

pip install matrix

You can also install the in-development version with:

pip install https://github.com/ionelmc/python-matrix/archive/main.zip

Documentation

https://python-matrix.readthedocs.io/

Development

To run all the tests run:

tox
반응형
반응형

창조적인 사람이 되고 싶으면 고흐처럼 당신의 작품 활동에 모든 시간을 할애하라.
그러나 창조적이면서 성공한 사람이 되고 싶다면,
절반의 시간만 작품 활동에 할애하고
나머지 시간은 다른 사람들에게 자신을 파는데 할애하라.
- 잭 트라우트, 마케팅 구루


‘멀리 가려면 함께 가라.’
혼자 힘으로는 성공할 수 없다는 평범한 진리가 담겨 있습니다.
혼자서도 충분히 창의적일 수 있습니다.
그러나 혼자서는 결코 큰 성공을 이룰 수 없습니다.
남이 나를 알아주고, 그들과 더불어 협력할 수 있을 때 큰 성공이 이뤄집니다.
타인과 더불어 일할 수 있는 능력은 실력 중에 최고의 실력입니다.

반응형
반응형

세상에,
나는 잠이 이렇게 중요한지 몰랐다.
35살에 잠의 소중함을 깨닫게 된 것이다.
여태까지 그렇게도 잠을 무시하며
살아온 것이 너무도 아까웠다.
억울함마저 느꼈다.


- 조아라의 《암 수술한 내가 꼭 알았어야 할 꿀잠 수면법》 중에서 -


* 우리 삶에 주어진 것은
모두가 소중합니다. 잠, 숨, 쉼, 봄, 걸음 등등...
졸지에 한 번 잃어 봐야 그 소중함을 절실히
깨닫게 됩니다. 35살! 이른 나이입니다.
'아까웠다', '억울했다' 그 마음마저
내려놓아야 잠이 돌아옵니다.

반응형

'아침편지' 카테고리의 다른 글

꿀잠 수면법  (0) 2023.10.09
깨어 있으면서 꾸는 꿈  (0) 2023.10.09
그리운 사람을 그리워하는 것  (0) 2023.10.03
손짓  (0) 2023.10.02
춤을 추는 순간  (0) 2023.09.27
반응형

그리운 사람을
그리워하는 것은 아직
몸의 감각이 생생히 살아 있다는 증거다.
길가에 핀 가을꽃 한 송이에 잠시 눈길이 머무른다.  
알알이 달려 있는 열매와 그 나무를 들여다볼 여유도
갖는다. 가을의 들머리에 서본다. 몸속에 숨어 있던
예민한 감각들이 뾰족뾰족 고개를 들기 시작한다.
순간순간 숨이 멎었다가 날숨에 실려 나오며
울컥거린다. 바람은 내 곁을 스치며
잘 살아보라고 어깨를
툭툭 치고 간다.


- 김삼환의 《사랑은 내가 주어가 아니라는 것을 알려주었다》 중에서 -


* 30년 넘게 함께 살던 아내를
불의의 사고로 떠나보낸 이가 쓴 글입니다.
떠난 아내가 사무치게 그리운 것은 그와 함께 했던
공간에서 함께 했던 시간을 떠올릴 때이고, 다시는 그와
함께 할 수 없음을 알 때입니다. 모든 것은 그대로인데
휑하니 가슴을 스쳐가는 바람은 숨죽인 감각을
건드리며 속삭입니다. 그러니 사는 동안
더 열심히 더 잘 살아가라고...

반응형

'아침편지' 카테고리의 다른 글

깨어 있으면서 꾸는 꿈  (0) 2023.10.09
35살에야 깨달은 것  (0) 2023.10.04
손짓  (0) 2023.10.02
춤을 추는 순간  (0) 2023.09.27
교실의 날씨  (0) 2023.09.26
반응형

사람은 생후 9개월쯤이면,
그러니까 걸음마나 말을 떼기도 전에
이미 손짓을 시작한다. 물론 태어난 직후에도
손짓을 하지만 이 동작이 의미를 띠기
시작하는 것은 9개월이 지나서다.
손짓은 신기한 몸짓이다. 어떤 다른
동물도 손짓을 하지 않는다.
손이 있는 동물이라도
마찬가지다.


- 브라이언 헤어, 버네사 우즈의 《다정한 것이 살아남는다》 중에서 -


* 대화를 할 때
사람들은 무의식적으로 손짓을 합니다.
손짓을 보노라면 그 사람의 의중이 더 잘 읽힙니다.
때로 우리는 말없이 아이의 머리를 쓰다듬거나
사랑하는 이의 몸을 만집니다. 손짓은 말보다
더 많은 뜻을 전달하기도 합니다.
손짓 하나로 더 가까워지고
손짓 하나로 멀어집니다.

반응형

'아침편지' 카테고리의 다른 글

35살에야 깨달은 것  (0) 2023.10.04
그리운 사람을 그리워하는 것  (0) 2023.10.03
춤을 추는 순간  (0) 2023.09.27
교실의 날씨  (0) 2023.09.26
울어야 하나 웃어야 하나  (0) 2023.09.25
반응형

알고리즘 탐색(Search)

탐색이란, 원하는 값을 찾는 것입니다.

선형 탐색(Linear Search)

순서대로 하나씩 찾는 방법 입니다.

이분(이진) 탐색(Binary Search)

반씩 제외하면서 찾는 방법 입니다.

해시 탐색(Hash Search)

선형탐색이나 이진탐색은, 어떤 값이 어떤 index에 들어있는지에 대한 정보가 없는 상태에서 탐색할 때 사용하는 방식이 었습니다.반면에 해시 탐색은 값과 index를 미리 연결해 둠으로써 짧은 시간에 탐색할 수 있는 알고리즘입니다.

완전 탐색

브루트 포스(Brute Force)

brute: 무식한, force: 힘 무식한 힘으로 해석할 수 있다. 완전탐색 알고리즘. 즉, 가능한 모든 경우의 수를 모두 탐색하면서 요구조건에 충족되는 결과만을 가져옵니다. 이 알고리즘의 강력한 점은 예외 없이 100%의 확률로 정답만을 출력한다는 점입니다.

백트래킹

해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법을 말합니다. 최적화 문제와 결정 문제를 푸는 방법이 됩니다.

재귀함수

함수는 자기 자신을 내부에서 호출할 수 있다. 이러한 함수를 재귀 함수라고 한다. 재귀 알고리즘(recursive algorithm)이란 재귀 함수를 이용하여 문제를 해결하는 알고리즘을 말합니다.

# 정렬/탐색 알고리즘 : https://modulabs.co.kr/blog/algorithm-python/
# Search 탐색 

def linear_search(list, target):
    for i in range(0, len(list)):
        if list[i] == target:
            return i
    return None

def binary_search(list, target):
    first = 0
    last = len(list) - 1

    while first <= last:
        midpoint = (first + last) // 2
        if list[midpoint] == target:
            return midpoint
        elif list[midpoint] < target:
            first = midpoint + 1
        else:
            last = midpoint - 1
    return None

def hash_search(list, target):
    hash_table = {}
    for i in range(0, len(list)):
        hash_table[list[i]] = i
    if target in hash_table:
        return hash_table[target]
    return None

def brute_force_search(list, target):
    for i in range(0, len(list)):
        for j in range(i + 1, len(list)):
            if list[i] + list[j] == target:
                return [i, j]
    return None

def recursive_binary_search(list, target):
    if len(list) == 0:
        return False
    else:
        midpoint = len(list) // 2
        if list[midpoint] == target:
            return True 
        else:
            if list[midpoint] < target:
                return recursive_binary_search(list[midpoint + 1:], target)
            else:
                return recursive_binary_search(list[:midpoint], target)







print(linear_search([1,2,3,4,5], 5)) 

print(binary_search([1,2,3,4,5], 5))

print(hash_search([1,2,3,4,5], 5))

print(brute_force_search([1,2,3,4,5], 5))

print(recursive_binary_search([1,2,3,4,5], 5))

BFS(너비 우선 탐색) & DFS(깊이 우선 탐색)

# 정렬/탐색 알고리즘 : https://modulabs.co.kr/blog/algorithm-python/
# Search 탐색 2 : BFS(너비 우선 탐색) & DFS(깊이 우선 탐색)

from collections import deque

graph_list = { 1: set([2, 3]),
                2: set([1, 3, 4]),
                3: set([1, 5]),
                4: set([1]),
                5: set([2,6]),
                6: set([3,4])}

root_node = 1

def bfs(graph, root):
    visited = []
    queue = deque([root])
    while queue:
        node = queue.popleft()
        if node not in visited:
            visited.append(node)
            queue += graph[node] - set(visited)
    return visited

print(bfs(graph_list, root_node))

def dfs(graph, root):
    visited = []
    stack = [root]
    while stack:
        node = stack.pop()
        if node not in visited:
            visited.append(node)
            stack += graph[node] - set(visited)
    return visited

print(dfs(graph_list, root_node))
반응형

'프로그래밍 > Python' 카테고리의 다른 글

[python] pdf to png, 해상도 높게 저장하기  (0) 2023.10.04
[python] matrix 3.0.0  (0) 2023.10.04
[python] 알고리즘 - 정렬  (0) 2023.09.27
[python] sudoku 만들기 - 랜덤 문제  (0) 2023.09.27
[python] sudoku 만들기  (0) 2023.09.27

+ Recent posts