반응형

2025/01/29 4

최단 경로 알고리즘 (다익스트라, 벨만-포드)

최단 경로 알고리즘은 그래프에서 두 정점 간의 최단 경로를 찾는 문제를 해결하기 위한 알고리즘입니다. 이 글에서는 가장 널리 알려진 두 가지 최단 경로 알고리즘인 다익스트라 알고리즘과 벨만-포드 알고리즘에 대해 설명하고, 각 알고리즘의 구현을 Java와 C 언어로 제공하겠습니다.다익스트라 알고리즘다익스트라 알고리즘은 양의 가중치를 가진 그래프에서 한 정점으로부터 다른 모든 정점까지의 최단 경로를 찾는 데 사용됩니다. 다익스트라 알고리즘은 그리디 알고리즘의 한 종류로, 최단 경로를 점진적으로 확장해 나가는 방식으로 작동합니다. 이 알고리즘은 우선순위 큐를 사용하여 가장 비용이 적은 정점을 선택해 나가며 최단 경로를 찾습니다.다익스트라 알고리즘의 특징시간 복잡도: 우선순위 큐(힙)를 사용하면 O((V + E..

Bash Shell Script 디렉토리 탐색 (find, xargs)

Linux의 디렉토리 탐색 명령어는 효율적이고 강력한 기능을 제공합니다. 오늘은 find와 xargs 명령어를 사용하여 파일 및 디렉토리를 검색하고 작업을 자동화하는 방법을 배워보겠습니다. 다양한 실전 예제를 통해 활용법도 익혀보세요.1. find 명령어 소개find는 파일 및 디렉토리를 검색할 때 사용하는 강력한 명령어입니다. 디렉토리 트리를 따라 원하는 조건에 맞는 파일을 찾을 수 있습니다.기본 문법find [검색할 경로] [옵션] [조건]주요 옵션-name : 파일 이름으로 검색-type : 파일 유형으로 검색 (f는 파일, d는 디렉토리)-size : 파일 크기로 검색-mtime : 최근 수정된 시간으로 검색-exec : 검색된 파일에 대해 명령 실행2. find 명령어 예제(1) 특정 이름의 파..

Bash Shell Script 파일 생성, 삭제, 복사 (touch, rm, cp, mv)

Linux Bash Shell에서 파일 관리는 기본적이면서도 매우 중요한 작업입니다. 이 글에서는 touch, rm, cp, mv 명령어를 사용해 파일을 생성하고, 삭제하며, 복사 및 이동하는 방법을 살펴보겠습니다. 각 명령어에 대한 사용법과 간단한 스크립트 예제를 통해 실습할 수 있습니다.1. 파일 생성: touchtouch 명령어touch 명령어는 새 파일을 생성하거나 기존 파일의 수정 시간을 업데이트하는 데 사용됩니다.사용법# 새로운 파일 생성$ touch 파일이름# 기존 파일의 수정 시간 업데이트$ touch 기존파일예제다음은 touch 명령어를 사용하여 파일을 생성하는 간단한 스크립트입니다.#!/bin/bash# 새로운 파일 생성echo "새로운 파일을 생성합니다."touch newfile.tx..

동적 계획법 Dynamic Programming 심화 - 배낭 문제, 최장 공통 부분 수열

오늘은 동적 계획법(DP)의 심화 주제인 "배낭 문제"와 "최장 공통 부분 수열(Longest Common Subsequence, LCS)"에 대해 다루어 보겠습니다. 이 두 문제는 알고리즘 학습자라면 반드시 익혀야 하는 문제 중 하나로, 다양한 실제 문제를 해결하는 데 큰 도움이 됩니다. 예제 코드 또한 Java와 C 언어로 구현하여 제공하니 비교해보며 학습하시기 바랍니다.배낭 문제 (Knapsack Problem)배낭 문제는 제한된 무게를 가진 배낭에 최대한 많은 가치를 가진 물건을 담는 문제입니다. 이 문제는 다양한 변형이 있지만, 오늘은 가장 기본적인 0/1 배낭 문제(각 물건을 담을지 말지를 결정하는 문제)를 다루겠습니다.문제 설명N개의 물건이 있고, 각 물건 i는 무게 ( w_i )와 가치 (..

반응형