분류 전체보기
-
마이크로프로세서(MPU)와 마이크로컨트롤러(MCU)임베디드 2024. 10. 17. 02:26
마이크로프로세서(MPU)컴퓨터에서 명령을 수행하고 데이터를 처리하는 CPU를 칩 형태로 만든 집적회로CPU, GPU, 라즈베리 파이 등이 포함된다. 주로 스마트폰, 컴퓨터 서버, 고성능 IoT기기등에 사용된다마이크로프로세서에 캐시메모리,주기억장치,입출력 제어장치까지 포함되면 마이크로컨트롤러로 분류가 된다.운영체제를 지원하여 리눅스나 안드로이드 같은 운영체제를 사용하여 고성능 연산 및 멀티태스킹을 지원한다.마이크로컨트롤러(MCU)집적 회로 안에 프로세서와 메모리 입출력 버스 등의 하나의 칩에 통합된 SoC(System on Chip)형태아두이노,STM32,ESP32 등이 포함된다. 주로 가전제품, 의료기기 ,IoT기기 등에 사용된다보통 운영체제 없이 돌리거나 RTOS를 사용하여 구동한다. 구동에 필요한 다..
-
백준(C++) 3190 [뱀]알고리즘(백준) 2024. 10. 17. 01:45
https://www.acmicpc.net/problem/3190접근방법백준 삼성 SW 역량 기출 문제 중 하나인 뱀이다. 조금 풀어보니 앞문제가 대부분 시뮬레이션 문제였다.이 문제도 시뮬레이션 문제이다. 시뮬레이션 문제는 주어진 상황을 정확하게 처리 해야한다. 상황에는 여러 문제가 있는데 그것이 시뮬레이션 문제의 접근방법이다. 이 문제의 상황은 NxN 정사각형 보드 위에 뱀이 움직이는것을 구현하라는 것이다. 4가지 규칙이 있는데 그것을 고려하면서 구현하면된다. 보드내에서의 뱀이 움직인 시간을 구하는 거라 처음은 BFS 기반을 생각했다. 하지만 내가 자주쓰던 BFS 형식을 하니 구현이 꼬였다. 막 덱도 써보고 이상한거 다써본 결과 이 문제는 최소 이동거리를 구하는게 아니고, 뱀이 어디까지 가는지 구하는 ..
-
백준(C++) 4179 [불!]알고리즘(백준) 2024. 10. 16. 05:43
https://www.acmicpc.net/problem/4179접근방법BFS 문제중 하나이다. 테스트 케이스 만큼의 입력이 주어지고, 입력으로 그래프의 너비 w와 높이 h가 주어진다. 여기에 문제에서 주어진 기호를 넣어 하나의 테스트 케이스 문을 완성한다. 기호는 다음과 같다.시작위치는 하나만 주어진다.#: 벽.: 지나갈 수 있는 공간J: 지훈이의 미로에서의 초기위치 (지나갈 수 있는 공간)F: 불이 난 공간이를 보면 단순하게 테스트 케이스 만큼 반복을 해주고, BFS 입력 큐에 @의 좌표를 입력후 BFS를 돌려주면된다.BFS 조건은 지훈이는 동서남북 1번씩 이동 및 벽, 불 통과 불가능 이다. 다른 문제와 다른점이라면 지훈이가 1번이동하면 불도 인근으로 번질수 있다는것이다.이러한 특징때문에 이 문제..
-
임베디드 시스템의 기본과 특징임베디드 2024. 10. 8. 01:34
임베디드 시스템(Embedded system)임베디드 시스템은 내장형 시스템으로 H/W에 S/W가 내장된 시스템을 말한다. 보통 특수한 목적을 가지고 설계된 시스템이다. 대중적인 PC와 다른 느낌이다. 예를 들면 PC는 사용자가 원하는 목적의 행동을 할수있지만, 임베디드 시스템은 설계된 목적에 따라 행동한다. 임베디드 시스템의 특징으로는 다음과 같다. 1. 실시간 처리 지원(Real-Time)-시스템이 정해진 시간내에 작업을 처리 하는 엄격한 시간 제약. 2. 높은 신뢰성(Reliability)-문제가 발생시 치명적인 손해가 발생하므로 지속 동작성 및 빠른 복구성을 가진 높은 안정성 시스템. 3. 최적화 기술지원(집적률)-제한된 자원 내에서 성능을 극대화 해야하므로 사이즈, 발열, 전력소모, 휴대성,CP..
-
백준(C++) 7567 [토마토]알고리즘(백준) 2024. 10. 6. 14:37
https://www.acmicpc.net/problem/7576접근방법전에 풀었던 문제와 같이 BFS를 이용하여 푸는 문제이다. 차이점이 있다면 시작점이 여러개라는 점이다.그렇다면 그래프 배열 입력시 시작점을 전부 큐에 넣어주면 된다.다른 점이 있다면, 이 문제에서 토마토는 동시에 인근 토마토를 익게 하므로 순서를 시작 토마토 -> 시작 토마토에 익은 토마토-> 익은 토마토에 익은 토마토 ->... 가 되어야한다.그래서 익어야되는 토마토와 몇일이 지난뒤 익은 토마토가 되는지 정보를 적어놔야한다.익어야되는 토마토를 없애면서, 익은 날짜를 적기위해 방문 배열에 이것들을 적기로 했다.BFS를 돌린후 그래프 배열을 전부 돌아 안익은 토마토를 확인하고몇일이 지나면 모두 익는지 일수를 구하면된다. BFS가 최종..
-
백준(C++) 2178 [미로탐색]알고리즘(백준) 2024. 10. 4. 01:16
https://www.acmicpc.net/problem/2178접근방법미로탐색 문제는 너비 우선 탐색을 이용하여 푸는 문제이다. 너비 우선 탐색(BFS)는 모든 길을 한번 씩 다 탐색한 후 다시 연결된 길을 넓게 탐색하는 방법이다.보통 주어진 그래프에서 시작점과 끝점이 있을때 최단경로를 알고 싶을떄 사용한다.미로라는 board 배열과 모든 가야될 길을 넣을 queue와 조건문을 사용하여 코딩했다.조건은 board배열 밖으로 나가는 경우, 벽에 닿을 경우, 최단 경로가 아닌 경우 로 설정했다.이동은 dx,dy 함수를 사용하여 동서남북을 구현했다.이 BFS의 끝은 더이상 갈곳이 없을때, 즉 큐가 비어있을때 종료하도록 했다.매우 기초적인 문제이기에 쉽게 풀었다. 코드는 다음과 같다.#include#inclu..
-
백준(C++) 17298 [오큰수], 17299[오등큰수]알고리즘(백준) 2024. 9. 9. 21:31
https://www.acmicpc.net/problem/17298접근방법오큰수는 스택을 이용하여 푸는 문제이다. 문제를 보면 배열에 있는 원소의 오른쪽에 원소보다 가장 더 큰수를 찾으면 그 수 를 출력 한다. 만약 그 수가 없으면 -1를 출력한다. 이는 스택 이용하면 쉽다. 입력을 통해 배열안에 수를 넣고, 비교문을 통과해 정답 배열안에 정답을 넣는다.이때 비교문을 스택으로 쓴다.예를들어 조건을 살펴보면 입력 3,5,2,7일때 비교문에 들어올때 입력 원소 방향은 맨 오른쪽부터 왼쪽으로 간다. 여기서 스택이 비어있으면 스택에 현재 수를 push한다.만약 스택이 비어있지 않고, 입력배열의 현재수가 스택의 top 수보다 크거나 같으면 스택을 계속 pop한다.이 모든 조건이 아니라면 -1를 정답배열 안에 넣는..
-
백준(C++) 1629 [곱셈]알고리즘(백준) 2024. 9. 4. 23:33
https://www.acmicpc.net/problem/1629접근방법분할 정복을 이용한 거듭 제곱 문제이다. 입력 조건은 A, B, C는 모두 2,147,483,647 이하의 자연수이고, 이를 단순 계산할 시 오버플로우 또는 시간초과가 난다.(int 형 21억 언저리, long long 형 시간초과) 그러므로 다른 방법으로 접근해야한다.long long 형을 쓰고 재귀를 사용한 거듭제곱을 사용하면 오버플로우와 시간초과 둘다 잡을수있다.필요한 기본 수학 지식은 기본 지수법칙이다. a^b = a^(b/2) * a^(b/2)이를 이용하면 ll xx함수에서 a,b,c를 받아들이면 b가 1일때 그냥 계산으로 넘어가고2이상일 경우 재귀로 작동하게 했다.중간에 result = result * result % ..