파이썬 zip 함수 : 반복자 쌍들을 가지고 노는 함수

파이썬 zip() 함수

Python에서 zip() 함수는 여러 iterable 항목(예: 리스트, 튜플 또는 문자열)을 튜플의 반복자로 결합하는 데 사용됩니다. zip 함수는 이런 기능을 이용해서 병렬 반복이나 데이터 쌍과 같은 작업에 유용하게 사용 할 수 있습니다

멀티 태스킹 : 스케줄러, Dispatch, Context Switching, PCB

멀티 태스킹

“Context Switching”에서 Context는 프로세스의 상태를 의미합니다. 기본적으로 Context Switching은 프로세스 상태를 바꾸는 것을 말하며,다시 말하면 프로세스를 일시 중지하고 다시 시작할 수 있도록 프로세스/스레드 상태를…

프로세스 생명주기 : 대기열, 스케줄링, 가상 메모리 스와핑

프로세스 생애주기

어찌보면 당연한거지만 프로세스에도 생애주기가 있었습니다. 사람도 세포도, 여러 대사 작용들도 모두 cycle이 있습니다. SDLC 개념도 처음 들으면서 재밌다 생각했는데, “프로세스 생명주기”도 있다는 걸 깨닫지 못한 게 오히려 신기한 건가 싶기도 합니다.

CPU : ALU, CU, 레지스터, 캐시 메모리, 버스, 클럭, 코어, TDP

cpu 성능, cpu 구성 요소, alu, cu, 버스, 캐시 메모리

작업 관리자를 들어가면 성능 탭에 CPU 성능에 대한 모니터링 데이터를 볼 수 있는데요.여기에 속도, 코어, 논리 프로세서, 캐시 같은 내용이 있습니다. 오늘은 CPU 란 어떻게 구성이 되어있고, 어떤 과정을 통해서 연산을 하는지…

재귀 함수 : 볼수록 빠져는 게 꼭 재귀같네

파이썬으로 이해하는 재귀 함수

여러 알고리즘을 공부하게 되면서 “재귀 함수”가 프로그래밍의 기초 개념을 위해 초반에만 살짝 지나가는 개념이 아니라는 것을 깨닫게 되었습니다. “재귀 함수”는 문제를 해결하기 위해 문제를 더 작은 형태로 나누어 직접 또는 간접적으로 정의 내에서 자신을 호출하는 함수입니다.

이분 탐색 : 파이썬으로 이해하는 이분 탐색 (이진 탐색)

파이썬으로 이해하는 이진탐색

브루트 포스의 단점이 방대한 input에서는 성능이 떨어진다는 점이였습니다. 이를 해결할 수 있는 게 “이분 탐색” 입니다. 말 그대로 반으로 나누어 탐색하는 거죠. 어떻게 반으로 나누어서 탐색하는 데 답을 찾을 수 있을까요?

BFS : 파이썬으로 이해하는 BFS

파이썬으로 이해하는 bfs

BFS 란? BFS(Breadth First Search)는 그래프에서 발생하는 사건들을 검사 혹은 처리하기 위해 탐색하는 방법 중 하나 입니다. BFS는 그래프를 수준별로 탐색하여 다음 수준으로 이동하기 전에 주어진 노드의 모든 인접 노드를 방문하는 그래프 순회 알고리즘입니다. BFS vs DFS BFS와 같은 탐색 알고리즘에서 가장 먼저 비교되는 게 DFS인데요 BFS는 레벨별로 그래프를 탐색하여 다음 레벨로 이동하기 전에 주어진 […]

그래프 구조 : 그래프 정리 (종류, 트리와 관계, 표현, 장단점)

그래프 데이터 구조

“트리는 그래프의 일종이다” 라는 사실을 알게되서 그럼 “그래프 구조” 란 뭘까? 하고 살짝 찾아본다는 게…. 해외 문서까지 찾아가서 정리해버리게 되었네요…. 당장은 트리 구조에서 문제를 풀고 있지만 언젠가 다른 그래프 구조의 문제도 해결할 일이 생길 것 같아 기왕 트리를 정리하는 김에 그래프를 몽땅 정리해봤습니다. GeeksForGeeks라는 사이트에 graph가 너무 자세히 설명되어서 한 번 쭉 읽고 정리해보았습니다. “그래프” […]