전체 글136 [BOJ 15835] Explorace(c++) https://www.acmicpc.net/problem/15835문제 개요체크포인트(N개)와 경로(M개)로 이루어진 그래프에서, 모든 체크포인트 간에 이동이 가능하도록 경로를 선택해야 합니다. 위원회를 배치할 경로를 최소화하면서도 전체 연결성을 보장해야 하므로, 최소 총 거리의 경로 집합을 구하는 문제입니다.(1 ≤ T ≤ 10)(1 ≤ N ≤ 20) : 체크포인트 수(1 ≤ M ≤ N*(N-1)) : 경로 수(1 ≤ d ≤ 500) : 각 경로의 거리문제 풀이모든 노드를 최소 비용으로 연결하는 전형적인 최소 신장 트리(MST, Minimum Spanning Tree) 문제입니다.핵심 아이디어:크루스칼(Kruskal) 알고리즘을 적용합니다.간선 정렬: 모든 경로를 거리(비용) 기준 오름차순 정렬Unio.. 2026. 3. 30. [BOJ 14497] 주난의 난(c++) https://www.acmicpc.net/problem/14497문제 개요N×M 크기의 교실에서 주난이가 상하좌우로 파동을 퍼뜨려 범인을 잡는 문제입니다. 파동은 장애물(친구들)을 만날 때까지 계속 퍼져나가며, 한 번의 점프가 한 겹의 친구들을 쓰러뜨립니다. 주난이의 위치에서 범인의 위치까지 도달하는 데 필요한 최소 점프 횟수를 구해야 합니다.(1 ≤ N, M ≤ 300)문제 풀이이 문제는 다익스트라(우선순위 큐 BFS) 로 해결하였습니다.핵심 아이디어는 다음과 같습니다.파동이 퍼져나갈 때, 빈 공간(0)을 지나는 것은 비용이 0이고, 친구(1 또는 #)를 만나면 비용이 1(점프 1회) 발생합니다.즉, 이동 비용이 0 또는 1인 최단 경로 문제이므로 우선순위 큐(최소 힙)를 사용하는 다익스트라로 해결할.. 2026. 3. 27. [BOJ 1477] 휴게소 세우기(c++) https://www.acmicpc.net/problem/1477 문제 개요고속도로 길이 L에 N개의 휴게소가 주어졌을 때, M개를 추가로 지어 휴게소 없는 구간의 최댓값을 최소화하는 문제입니다.(0 ≤ N ≤ 50)(1 ≤ M ≤ 100)(100 ≤ L ≤ 1,000)문제 풀이파라메트릭 서치(이분탐색)로 해결하였습니다."휴게소 없는 구간의 최댓값"을 이분탐색의 대상으로 설정하고, 해당 최댓값 x가 주어졌을 때 M개 이하의 휴게소로 모든 구간을 x 이하로 나눌 수 있는지를 check 함수로 판단합니다.정렬된 휴게소 배열을 순서대로 순회하며, 현재 위치에서 다음 휴게소까지의 거리가 x를 초과할 경우 중간에 휴게소를 추가추가 횟수가 M을 초과하면 불가능, 이하면 가능고속도로 끝(L)도 배열에 포함시켜 마지막.. 2026. 3. 6. [BOJ 1744] 수 묶기 (c++) https://www.acmicpc.net/problem/1744 문제 개요n개의 수열이 주어졌을 때, 다음 조건을 만족하는 수열의 합들의 최대값을 구해야 합니다. 수열 중에 두 개의 값을 묶어서 곱한 뒤 더할 수 있습니다. 수열의 각 수는 묶이거나 묶이지 않을 수 있습니다. 예를들어 수열 {0, 1, 2, 3, 4, 5}가 주어졌을 때, 수열의 합은 0+1+2+3+4+5 = 15입니다. 하지만, 2와 3을 묶고 4와 5를 묶으면 0+1+(2*3)+(4*5) = 27로 최댓값이 됩니다.(0 ≤ n (각 수열의 수 ≤ |1,000|)문제 풀이이 문제는 그리디 + 우선순위 큐로 해결하였습니다.각 수열의 수를 x라 할때 다음과 같이 처리하였습니다.x = 1일 때: 언제나 1은 곱하는 것보다 더하는 게 유리하므.. 2026. 3. 5. [BOJ 2109] 순회강연(c++) https://www.acmicpc.net/problem/2109문제 개요n개의 대학에서 강연 요청이 들어오고, 각 대학은 d일 안에 강연을 하면 p만큼의 강연료를 지불합니다. 하루에 최대 한 곳에서만 강연할 수 있을 때, 최대로 벌 수 있는 돈을 구하는 문제입니다.(0 ≤ n ≤ 10,000)(1 ≤ d ≤ 10,000)(1 ≤ p ≤ 10,000)문제 풀이이 문제는 그리디 + 우선순위 큐로 해결하였습니다.핵심 아이디어는 다음과 같습니다.마감일 기준 내림차순 정렬: d가 큰 강연부터 처리하면, 마감일이 늦은 날짜부터 슬롯을 채워나갈 수 있습니다.날짜별 슬롯 관리: 현재 처리 중인 마감일(idx)을 기준으로, 같은 d를 가진 강연들을 먼저 최대 힙(pq2)에 모아둡니다. 그 후 idx가 0보다 클 때까지.. 2026. 3. 3. [BOJ1615] 교차개수세기(c++) https://www.acmicpc.net/problem/1615문제 개요각각 N(1 ≤ N ≤ 2,000)개의 쌍으로 이루어진 2N개의 정점과 M(1 ≤ M ≤ N×(N-1)/2)개의 간선으로 구성된 이분그래프가 주어질 때, 서로 교차하는 간선의 총 개수를 구하는 문제입니다.교차 조건: 한 독립 집합 A와 다른 독립 집합 B가 연결된 두 개의 간선을 (A1, B1), (A2, B2)라 한다면, A1 B2 또는 A1 > A2이면서 B1 를 만족하면 두 간선이 교차한다고 정의합니다.(1 ≤ N ≤ 2,000)(1 ≤ M ≤ N×(N-1)/2)문제 풀이이 문제는 세그먼트 트리와 정렬을 활용하여 해결할 수 있습니다.핵심 아이디어정렬: 왼쪽 정점을 기준으로 간선들을 오름차순 정렬합니다.세그먼트 트리: 각 간선.. 2026. 2. 11. [ROS2] camera_ros로 라즈베리파이 카메라 스트리밍하기 라즈베리파이 카메라를 ROS2 환경에서 사용하기 위한 camera_ros 패키지 설치 및 web_video_server를 통한 웹 스트리밍 구현 과정을 정리하겠습니다.환경:하드웨어: Raspberry Pi (Camera Module 지원 모델)환경: Debian, WSL2ROS2: Humble카메라: IMX-219https://www.arducam.com/b01678mp-arducam-8mp-pan-tilt-zoom-ptz-camera-for-raspberry-pi.html Arducam 8MP Pan Tilt Zoom PTZ Camera for Raspberry Pi 4/3B+/3 and NVIDIA® Jetson AGX Orin/Orin Nano/Orin NX Real PTZ with servos .. 2026. 2. 10. 라즈베리파이 ROS2 Humble 설치하기(Ubuntu 22.04) 라즈베리파이에 ROS2 Humble을 설치하는 과정을 정리하겠습니다. Ubuntu Server 22.04를 기반으로 설치하며, 기본적인 Hello World 예제까지 실행해보겠습니다.Ubuntu Server 22.04 설치라즈베리파이4와 SD카드를 준비해야 합니다.Raspberry Pi Imager 다운로드https://www.raspberrypi.com/software/ Raspberry Pi software – Raspberry PiFrom our operating system to our GitHub repos, explore the software that powers our technologywww.raspberrypi.comRaspberry Pi Imager를 설치해줍니다. Raspberry .. 2026. 2. 4. WSL2 ROS2 라즈베리파이 RGB LED 제어하기(with X서버) https://doyun98.tistory.com/132 WSL2에 Docker ROS2 환경 구축하기https://doyun98.tistory.com/131 WSL2 ubuntu 22.04 설치하기WSL2에 Ubuntu 22.04를 설치하는 과정입니다. Ubuntu 이미지 다운로드https://cloud-images.ubuntu.com/releases/jammy/release/ 에서ubuntu-22.04-server-cloudimg-amd64-root.tar.xzdoyun98.tistory.comhttps://doyun98.tistory.com/134 WSL2 ROS2를 이용한 라즈베리파이 RGB LED 제어하기https://doyun98.tistory.com/132 WSL2에 Docker ROS2 환.. 2026. 2. 4. WSL2 ROS2를 이용한 라즈베리파이 RGB LED 제어하기 https://doyun98.tistory.com/132 WSL2에 Docker ROS2 환경 구축하기https://doyun98.tistory.com/131 WSL2 ubuntu 22.04 설치하기WSL2에 Ubuntu 22.04를 설치하는 과정입니다. Ubuntu 이미지 다운로드https://cloud-images.ubuntu.com/releases/jammy/release/ 에서ubuntu-22.04-server-cloudimg-amd64-root.tar.xzdoyun98.tistory.com 앞서 설치한 환경에서의 ROS2 노드에서 라즈베리파이의 RGB LED를 소켓 통신으로 제어해보겠습니다.라즈베리파이 LED 서버 구현회로 구성RED LED → GPIO 17GREEN LED → GPIO 27BL.. 2026. 2. 4. [BOJ 14727] 퍼즐 자르기 (c++) https://www.acmicpc.net/problem/14727문제 개요히스토그램 모양의 플라스틱 퍼즐 조각에서 가장 큰 직사각형을 잘라내려고 합니다. 히스토그램의 정보는 각 직사각형의 높이로 주어지며, 각 직사각형의 너비는 모두 1입니다. 주어진 히스토그램에서 잘라낼 수 있는 가장 큰 직사각형의 넓이를 구하는 문제입니다.(1 ≤ N ≤ 100,000)(1 ≤ Hi ≤ 1,000,000)문제 풀이이 문제는 세그먼트 트리와 분할 정복 기법을 활용하여 해결하였습니다.핵심 아이디어는 다음과 같습니다.최소값 세그먼트 트리 구축: 구간 내에서 최소 높이를 가지는 직사각형의 정보(높이와 인덱스)를 빠르게 찾기 위해 세그먼트 트리를 구축합니다.분할 정복 전략: 특정 구간 [s, e]에서 가장 큰 직사각형을 찾기 .. 2026. 2. 4. WSL2에 Docker ROS2 환경 구축하기 https://doyun98.tistory.com/131 WSL2 ubuntu 22.04 설치하기WSL2에 Ubuntu 22.04를 설치하는 과정입니다. Ubuntu 이미지 다운로드https://cloud-images.ubuntu.com/releases/jammy/release/ 에서ubuntu-22.04-server-cloudimg-amd64-root.tar.xz 파일을 받아서 설치하겠습니다. WSL 설치 mkdir D:\Wdoyun98.tistory.com앞서 설치한 WSL2 우분투에 Docker를 설치하고 ROS2 Humble 개발환경을 구축하는 과정입니다.Docker란?Docker는 애플리케이션을 컨테이너라는 격리된 환경에서 실행할 수 있게 해주는 플랫폼입니다. ROS2 개발환경을 Docker로 .. 2026. 2. 4. 이전 1 2 3 4 ··· 12 다음