전체 글
-
백준(C) 2098번 [외판원 순회]알고리즘(백준) 2025. 2. 24. 07:05
접근방법DP 풀이법 중에서 비트마스크를 이용한 DP 의 대표적인 문제이다. 외판원 순회 문제는 쉽게 요약하면 한명의판매원이 모든 도시를 한번씩 방문한뒤 출발지로 돌아오는 최소 비용을 구하는 문제이다.그냥 일반 DP는 느낌이 누적합, 1,2 차원적 문제의 DP 느낌이라면 비트마스크를 이용한것은 상태가 많은 부분집합의 DP 느낌이다. 예를 들면 DP의 대표적인 문제인 배낭문제가 무게, 가치 dp[개수][무게]를 이용하여 지금까지 고려한 물건의 수와 무게를 상태로 사용하여 최대 가치를 찾는 것이라면 외판원 순회는 만약 도시가 4곳이라고 가정한다면 dp[1 0~ 15가 16개 이므로 MAX값은 (1 방문한 도시를 1 방문하지 않은 도시를 0 이라고 했을때 0000 부터 1111까지의 상태를 이용하여 DP를 진행..
-
AUTOSAR(AUTomotive Open System ARchitecture) 란 무엇인가?임베디드 2025. 1. 31. 19:39
AUTOSAR는 차량 SW 표준 플랫폼중 하나이다. 예를 들면 핸드폰의 IOS,Android나 PC의 Window,Linux 같은 역할이다.즉, HW를 쉽게 쓰기 위해 나온 SW이다. 지금까지 조사, 공부한 사실을 쭉 정리해보기로 했다. 1.AUTOSAR 개요AUTOSAR 란?AUTOSAR 는 자동차 산업의 표준화를 위해 만들어진 글로벌 개발 파트너쉽이다. 자동차 ECU(Electronic Control Unit, 자동차나 기타 탈것의 전기시스템을 제어하는 장치)의 개방형 표준 SW 구조를 개발하고 설립하는게 목적이다.표준화 목표는 쉽게 말하면 크게 3가지이다. SW 개발 편의성, 재사용성, 모듈화이다. 비 AUTOSAR 개발방식과 비교하여 설명하면 다음 표와 같다.구분비 AUTOSARAUTOSAR 기..
-
해커톤 ESP32를 활용한 Bluetooth 통신 구현프로젝트 2025. 1. 29. 16:31
인원 4인팀으로 출전 했고, 나의 역할은 Bluetooth 및 NFC 통신 구현, 코드 디버깅 이었다. 각각 팀원들의 역할은 화면 인터페이스 담당, AI 인식 담당, 팀장이 총괄을 맡았다. 아이디어 개요휴대용 혈당계는 잦은 채혈로 인한 사용자의 불편함과 부피가 작은게 아니라 휴대성이 좋지 않다. 또한 버튼은 한정적인데 매뉴얼은 복잡하다. 그렇기에 우리는 복잡한 매뉴얼, 나쁜 휴대성을 해결하기 위해 핸드폰 뒤에 붙이는 형식의 Maqsafe( iPhone 충전기, 자석을 이용해 뒤에 붙히기만 하면된다.) 혈당계를 생각했다. 또한 자주 채혈을 한다는 불편함을 해결하기위해 AI 인식을 이용한 식단관리, 먹은 음식에 대한 데이터를 도출 한뒤 올라갈 혈당을 예상하여 사용자가 자신의 혈당을 항상 알기위해 채혈을 하..
-
백준(C) 1644번 [소수의 연속합]알고리즘(백준) 2025. 1. 28. 18:07
https://www.acmicpc.net/problem/1644 접근방법소수의 연속합 문제는 저번 문제와 같은 연속된 소수들의 합이 n이 되는 경우의 수를 세는 문제이다.연속된 이라는 말이 있으니 투포인터를 사용하면 시간 효율성이 높아질것이고, 소수를 판별해야 하니 소수 판별법을 써서 소수를 걸러내야 될것이다. 그래서 나는 이렇게 구상했다. 1. 소수 목록 만들기2. 투포인터로 경우의 수 찾기(오른쪽 포인터가 n을 넘으면 탈출)3. 출력 일단 소수 목록은 사람들이 많이 쓰는 에라토스테네스의 체를 쓰기로 했다.에라토스테네스의 체는 특정범위의 소수를 빨리 찾는 알고리즘으로 대량으로 바르게 찾는 방법이다.방법은 다음과 같다.1. 소수가 아닌 1을 제거한다.2. 2부터 소수인 수의 배수를 제거한다.(지워진 ..
-
백준(C) 1806번 [부분합]알고리즘(백준) 2025. 1. 28. 06:41
접근방법부분합 문제는 N개의 10000 이하 자연수가 주어지고 이 수열에서 연속된 수의 합 중에 s이상이 되는것, 그중에서 길이가 짧은 것을 찾는것이다.그렇게 되면 투포인터를 쓸수있다. 조건은 l 포인터 부터 r 포인터까지 더한게 s보다 크면 l을 늘려 줄이고 작으면 r을 늘려 크게 만들면된다. 탈출 조건은 r이 n을 넘으면 이다.즉 r이 n이 넘을 때까지 조건문을 반복하며 s보다 같거나 크면 연속된 수의 크기를 저장 하고 다시 비교하고 작은거 저장하고... 반복하다보면 문제 해결이다. 투포인터 문제인걸 캐치하고 조건문만 잘 설정하면 쉬운 문제이다.가장 주의할 점은 만약 못찾았을 경우이다. 이때는 초기 값을 아예 int 최대값 (INT_MAX)로 잡아 못찾아서 min_size(연속된 수의 길이)를 수정하..
-
백준(C) 2470번 [두 용액]알고리즘(백준) 2025. 1. 28. 05:39
접근방법두 용액 문제는 서로 다른 n개의 정수가 주어졌을때, 두 수의 합이 0에 가까운 수를 찾는 문제이다.보통 이럴때 가장 쉽게 푸는 방법은 전체의 경우의 수를 비교하는 것이지만(브루트포스), 안타깝게도 대부분의 문제는 그러면 시간초과가 나오게 설정이 되어있다. 그러므로 시간을 최대한 효율적이게 쓰는 알고리즘을 사용해야한다. 방법은 두개 생각했다. 한개는 이진탐색이고 한개는 투포인터이다. 이진 탐색을 사용했을때 따로 조건문을 많이 사용해야할것 같아서 투포인터로 풀었다. 투 포인터는 간단하게 설명하면 움직이는 포인터를 두 개로 만들것이다.만약 이 문제처럼 1차원 배열로 예를 들면 이렇게 생각할수있다. 조건에 따라 포인터 1을 움직일지 포인터 2을 움직일지 고르면된다.(이 방법은 배열을 한번 순회해서 배..
-
캡스톤 디자인: 보행자와 운전자를 위한 AI 기반 스마트 펜스 개발프로젝트 2025. 1. 27. 22:30
0. 팀 구성원 및 역할우리 프로젝트팀은 총 6명으로 팀장 1명, 하드웨어 담당 3명, 소프트웨어 담당 2명이다.각 역할은 다음과 같다.팀장: 프로젝트 총괄 및 일정 관리 하드웨어 담당: LED 및 음성 센서 제어 회로 설계 소프트웨어 담당 (본인): 객체 인식 프로그램 개발 및 시스템 통합 본인의 역할은 소프트웨어 개발을 담당하여, Jetson Xavier에서 YOLOv4 모델을 최적화하고 실행하는 코드를 개발하고자 했다. Python3를 활용해 특정 경계선에 닿는 물체를 인식하여 True/False 결과를 출력하는 프로그램을 목표로 설계했다 . 1. 개발동기 및 목표어린이 보호구역 및 노인보호구역과 같은 사회적 약자들의 보호 강책 강화객체 인식을 통해 특정 구역에 접근하는 사람 또는 차를 감지하고 경..
-
백준(C) 9251번 [LCS]알고리즘(백준) 2025. 1. 27. 05:17
현대 오토에버 대비 다이나믹 프로그래밍 문제중 하나인 LCS(최장 공통 부분 수열)문제이다.말그대로 두 수열이 주어졌을때 두 부분 수열이 되는 수열중 가장 긴 것을 찾는 것이다.0부터 n까지 공통된 문자만 찾아서 비교하면된다. 문자열의 문자는 정해지지 않으므로찾으려는 결과 값은 dp[i][j] = 문자열 a의 i글자와 문자열 b의 j글자 간의 공통 수열 길이 이렇게 나타낼수있다. 그렇다면 초기값은 dp[0][j] = 0, dp[i][0] = 0이다.그리고 앞에 배낭문제처럼 이 문제도 만약 공통된 수를 찾으면 value를 증가 시키면 된다. 이때 value 값은 +1 이다.그렇다면 점화식을 구할수있다. dp[i][j] = dp[i-1][j-1] +1 이다.처음엔 dp[i][j] +1 를 적용 시킬까 생각을..