분류 전체보기 15

[자동차 관리] 엔진 오일 교체 주기 쉽게 알기 : 주행 거리 기준? 아니다! 엔진 가동 시간이 기준이다!

한국 사람들의 자차 사랑은 유별납니다. '내 차는 소중하니까'라는 마음으로 주기적으로 서비스 센터를 방문해 엔진오일을 교환하죠. 요즘은 커넥티드 카 서비스나 관리 앱이 잘 되어 있어 교환 주기를 놓치는 일은 드뭅니다. 하지만 아이러니하게도 가장 기본이 되는 '엔진오일' 그 자체에 대해서는 무관심한 경우가 많습니다. "그냥 좋은 걸로 갈아주세요.""합성유가 무조건 좋은 거 아닌가요?" 이런 질문을 던지며 불필요한 비용을 지출하거나, 오히려 내 차에 맞지 않는 관리로 엔진 수명을 갉아먹고 있지는 않으신가요? 오늘은 내 시간과 예산을 절약하고, 차량 컨디션을 최상으로 유지하기 위해 차주가 반드시 알아야 할 엔진오일의 핵심을 정리하여 알려드랍니다.1. 엔진오일의 5가지 기능! 도대체 무슨 일을 할까?엔진오일을 ..

[Python] 알고리즘 상태 다이어그램 (Algorithm Phase Diagram) : 메모리 사용량, 실행 속도, 시간 복잡도로 비교하는 알고리즘 18종

이번에는 실무와 코딩 테스트에서 특히 자주 등장하는 핵심 알고리즘 패턴 5가지를 중심으로 정리해보겠습니다. 단순히 개념만 나열하는 것이 아니라, 이 5가지를 기준으로 실행 속도, 시간 복잡도, 메모리 사용량, 다른 알고리즘들과의 관계까지 종합하여 비교해보고자 합니다. 이 글에서는 "어떤 문제, 상황에서 어떤 알고리즘을 선택해야 하는지"를 한눈에 알아볼 수 있는 실전용 사고의 기준을 세우는 것이 목표입니다. 1. 핵심 알고리즘 5가지탐욕 알고리즘 (Greedy)투 포인터 (Two Pointer)슬라이딩 윈도우 (Sliding Window)백트래킹 (Backtracking)분할 정복 (Divide & Conquer)☞ 우선 각 알고리즘의 정의, 동작 원리, 복잡도, 장점/단점, 대표 문제 예시를 표로써 비교..

[Python] 탐색 알고리즘의 개념: 선형(Linear), 이진(Binary), 깊이 우선(DFS), 너비 우선(BFS)

탐색 알고리즘이란?> 탐색(Search): "많은 데이터 중에서 원하는 값을 찾는 과정" 입니다.> 탐색 방법(알고리즘) : 데이터가 어떻게 저장되어 있는지에 따라 탐색 알고리즘이 달라집니다. 이 글에서는 다음 네 가지 탐색 알고리즘을 다룹니다.선형 탐색 (Linear Search)이진 탐색 (Binary Search) 깊이 우선 탐색 (Depth-First Search, DFS) 너비 우선 탐색 (Breadth-First Search, BFS)탐색 알고리즘은 크게 두 가지 축으로 나눌 수 있습니다.선형 구조 : 일차원(배열/리스트) 탐색선형 탐색: 정렬 여부 상관 없이 앞에서부터 쭉 검사.이진 탐색: 정렬된 배열에서 중간값 기준으로 범위를 반씩 줄이기.비선형 구조 : 그래프/트리 탐색DFS: 스택(또는..

[Python] 정렬 알고리즘(sorts)과 동적 프로그래밍(DP)의 개념: 시간 복잡도, Big-O

이 글에서는 아래 두 가지 주제를 요약하고, 파이썬으로 테스트한 시간 복잡도 그래프와 표준오차를 이용한 해석도 함께 추가로 정리했습니다.[주제 1] 정렬 알고리즘(sorting algorithms, sorts) 6종- 기본 개념, 장단점, 시간/공간 복잡도- 6종 예제 구현: 버블, 선택, 삽입, 병합, 퀵, 힙[주제 2] 동적 프로그래밍(Dynamic Programming, DP)- 기본 개념, 분할 정복과의 차이, 메모이제이션/탑다운-바텀업 방식 - DP 예제 구현: Fibonacci, 계단 오르기, 0/1 배낭 문제[글 전체 개요] │ ├─ 1. 복잡도와 알고리즘 큰 그림 │ ├─ 1-1. 시간 복잡도 │ └─ 1-2. 공간 복잡도 ├─ 2. 통계적 해석: 표준편..

[백준문제] 알람 시계(2884번), 좀 더 잘 풀어보기! - 45분 당기기? 부족하다! 알람 늦추기도 해보자.

이 글에서는 단순히 "45분 당기기"만 처리하는 백준 2884번*의 기본 풀이를 넘어, 어떤 시간 조정(조기상 / 늦잠) 상황에서도 정확하게 동작하는 일반화된 알람 계산 방식을 파이썬으로 구현해 보겠습니다.☞ 백준문제 2884번 (단계별로 풀어보기 - 조건문 5번: 알람 시계) https://www.acmicpc.net/problem/2884 구현을 위한 핵심 아이디어는 하루를 0~1439분의 순환 구조로 보고 모든 시각을 하나의 "분 인덱스"로 다루는 것입니다. 이렇게 관점을 잡으면 시·분 경계, 하루 넘어감(23:59 → 00:00) 같은 문제점이 해결됩니다.1. 백준 2884번 "알람 시계" 문제의 아쉬운 점백준 2884번(알람 시계)는 현재 시간에서 45분을 "당겨서" 설정하는 간단한 조건문 문제..

[HTML,CSS] tistroy, 제목 글자 크기 수정하기

Solution)tistory의 제목 글자 크기를 수정하는 방법을 알아보자! 필자는, HTML+CSS를 접한 입문자이다. CSS에 대해서 조금 알게되면서, tistory에서 title font size를 수정하는 방법을 찾던 중에, CSS에서 간단한 방법으로 해결할 수 있게되어서 아래와 같이 정리해보았다. 티스토리에서 제목의 기본 글자 크기(48px) 사이즈가 너무 커서, 제목이 좀 길어지면 아래와 같이 짤려서 보인다.제목 텍스트를 클릭하는 등, 어떤 방법으로도 제목을 다 볼 수 없는 답답함이 있다. 아쉬운 부분이다. 필자는 간단한 수정으로 아래 붉은색 표시처럼 글자 크기를 48px에서 36px로 줄여서 제목 텍스트를 모두 보이게 해보았다. > 수정 방법은 간단하다. 아래 순서로 해보자. 1. '관리'..

[Python] MySQL & Jupyter 연동 - 객체지향 프로그래밍(OOP)을 활용한 DB 작업 프로그램 예제

HW)MySQL program과 Jupyter program의 DB 연동으로 객체지향 프로그래밍(OOP)을 활용한 데이터베이스(DB) 작업 프로그램을 만들어보자. MySQL Workbench를 활용해서 아래와 같이 DB를 만들고, Jupyter notebook을 활용하여 DB와 연결한 후 OOP를 구현해보자. ※ Jupyter는 Colab과 유사하게 사용할 수 있는데 특히 웹을 통하지 않고 직접 MySQL과 연동하여 파이썬 코드를 작성하는 것에 유용하다. 필자는 최신 국내 하이브리드(HEV) 자동차들의 정보를 DB를 활용하여 만들어보았다. MySQL에서 항목(열 제목)은 영어를 사용하는 것이 권장되기 때문에, 아래와 같이 각 항목을 영어 약어로 만들어 보았다. 각 항목에 대한 하이브리드 자동차별 주요 정..

[Python] 자료 구조5 - 힙(Heap)의 개념, 구조, 규칙

HW)연결리스트(Linked List)와 이진 트리(Binay Tree)에 이어서 자료 구조 관련하여 '힙(Heap)'에 대해서 이해해보자. 우선, 힙의 개념에 대해서 알아보자. 힙(Heap)> 힙은 완전 이진 트리(Complete Binary Tree) 기반의 자료 구조로, 부모(Parent) 노드가 항상 자식(Child) 노드보다 크거나 작도록 (이상 또는 이하) 유지하는 형태를 말한다.- 완전 이진 트리의 규칙 : 중간에 빈 노드 없이, 마지막 레벨(가장 아래 깊이)을 제외한 나머지 노드가 모두 차야한다. - 힙에는 삽입 과정과 삭제 과정이 있다. 아래 표와 같이 정리해보자.구분힙 삽입(Insert) 과정힙 삭제(Delete) 과정규칙- 삽입 시 위로 끌어올림 (Heapify-up)- 마지막 위치..

[Python] 자료 구조4 - 이진 트리(Binary Tree)의 개념, 구조, 규칙

HW)연결리스트(Linked list)에 이어서, 자료 구조 3번째 노트로 이 번에는 '트리(Tree)' 에 대해서 이해해보자. 우선, 트리와 이진 트리(Binary Tree)의 개념, 구조, 연산 규칙을 정리하고, 활용 실습 대상으로 이진 탐색 트리(Binary Search Tree)를 파이썬으로 구현해보자. 트리(Tree) > 트리는 테이터를 계층 구조(hierarchy) 즉 상-하 종속 관계로 저장하는 자료 구조이다.- 트리는 “방향성 없는 그래프”의 일종으로, 순환(Cycle)이 없고 단 하나의 루트(root)를 가진다.- 최상단에는 루트(Root)가 자리하고, 노드 간의 종속 관계는 부모(Parent)와 자식(Child)이라고 부른다.> 용어용어, 명칭의미, 개념Root (루트) 트리의 시작점 ..

[Python] 자료 구조3 - Hash table의 개념과 index 충돌 해결 방식 비교

HW)코드 데이터 관련하여 다른 자료 구조로써, 이번에는 해시 테이블(Hash table)의 개념과 구조에 대해서 알아보자. 해시 함수(Hash function)와 index 충돌(Collision)의 의미를 이해하고, 특히 해시 충돌을 해결하는 방법으로 체이닝(Chaining) 방식과 개방 주소(Open Addressing) 방식을 파이썬으로 구현하여 이해해보자. 우선, 해시 테이블(Hash table)이란 무엇일까? > Hash table은 순차적으로 배열된 각 index에 해당하는 값(bucket or values)을 저장하고 검색(색인)할 수 있도록 재구성된 자료구조이다. - 아래 [그림1]과 같이, 입력 data에서 주어진 데이터는 쌍으로 주어지며(ex, 딕셔너리의 {'key' : value},..