전체 글
-
백준(C) 9095번 [1, 2, 3 더하기 ]알고리즘(백준) 2025. 1. 27. 04:55
접근방법현대 오토에버 대비 다이나믹 프로그래밍 문제중 하나다.저번 배낭 문제에서 말했듯이 다이나믹 프로그래밍은 문제를 동일한 여러 하위 문제로 쪼개서 푸는 프로그래밍이다. 1,2,3 더하기는 주어진 정수 n 만큼 11보다 작은 양의 정수를 입력하고 이 정수가 되는 1 2 3의 합의 경우의 수를 구하는 문제다. 그렇다면 초기 조건은 dp[1] = 1, dp[2] = 2, dp[3] = 4 이다.(1,2,3을 나타내는 경우의 수) 그렇다면i정수의 경우의 수는 dp[i] = dp[i-1]+dp[i-2]+dp[i-3] 이렇게 나타낼수있다 왜냐하면n = 4일때 경우의 수는 7이다dp[1]은 1이다 dp[2]은 2이다.dp[3]은 4이다이를 보면 dp[4] = 7 이므로 dp 1 2 3 을 더한 값과 같다다음을 ..
-
백준(C) 12865번 [평범한 배낭]알고리즘(백준) 2025. 1. 27. 04:27
접근방법현대 오토에버 코딩 테스트 준비 대비 문제로 푼 문제이다. 원래는 c 스타일의 코드를 c++의 문법으로 풀었는데, 코딩 테스트는 c로 풀어야해서 c++로 푼걸 다시 c로 변환 해봤다. 다이나믹 프로그래밍의 대표적인 문제인 배낭 문제로 배낭 문제란 제한된 무게를 가진 가방에 물건을 담을때 가치의 합을 최대로 넣는 방법을 찾는 문제이다.다이나믹 프로그래밍의 특징은 문제를 작은 하위 문제로 만들수 있고, 이러한 동일한 하위 문제가 반복된다는 것이다.다르게 말하면 기억하며 풀기라고도 말할 수 있다. 이는 특정 문제에서 모든 조합을 계산하는 브루트포스 알고리즘보다 시간을 효율적이게 쓸수있다.만약 i번째 물건까지 고려했을 때 , 무게가 w일때의 최대 가치는 dp[i][w]라고 가정하면, 초기 조건 dp[0..
-
백준(C++) 2212번 [센서]알고리즘(백준) 2025. 1. 3. 06:08
접근방법그리디 알고리즘 보강 추천 문제 중 하나이다. 문제 요약하면 1차원 고속도로 위에 센서가 원점을 기준으로 위치별로 N개가 있는데 이 센서를 기지국에 다 포함시켜야한다. 기지국의 개수는 K개이다. 즉, 센서를 K개의 그룹으로 나눈뒤 나눈 그룹중 최소 거리의 합을 출력하면된다.쉽게 쉽게 단계를 나눠 보았다.1. N개 센서 입력2. N개의 센서 정렬3. 정렬된 센서들 사이의 거리를 다른 컨테이너에 저장(N ,N+1)4. 컨테이너를 내림차순으로 정렬 그 후 센서들의 최대 거리의 합을 저장5. K-1(K가 1이면 돌 필요가 없음)번 센서들 끼리의 거리가 큰 순서로 최대 거리의 합에 빼기 연산6. 연산값을 출력 순으로 진행 하였다. 처음 딱 코드를 한후 테스트 케이스를 확인 한후 제출을 해봤는데 Out ..
-
백준(C++) 25970번 [현대 모비스 에어 서스펜션]알고리즘(백준) 2024. 12. 28. 21:26
https://www.acmicpc.net/problem/25395접근방법현대 S/W 문제집에 있는 현대 모비스 에어 서스펜션 문제이다.요약하자면 비교할 비교 데이터 개수 B가 정해진다 처음 B개는 높음, 나중 B개는 낮음 데이터이다.그후 비교할 실시간 데이터가 N개 주어진다. 실시간 데이터에 비교데이터를 비교하여 높음과 낮음을 나타낸다.이를 N개 출력하면된다. 높낮이가 맞으면 GOOD 또는 LOW,HIGH로 출력하면된다. 이를 처음 봤을떄 비교데이터 개수에 따라 컨테이너에 집어넣고, 컨테이너가 차있는 글자수를 일일이 비교한다는 생각을 했다. 하지만 이는 너무 난잡했다. 그래서 비교 데이터를 컨테이너에 집어넣고 find로 찾는 방법을 사용했다.find는 처음 쓴거라 몇몇 표준 표현을 보고 했다.여기서 처..
-
백준(C++) 25395번 [커넥티드 카 실험]알고리즘(백준) 2024. 12. 27. 03:10
https://www.acmicpc.net/problem/25395접근방법현대 s/w 문제집에 있는 커넥티드 카 실험이다.간단히 정리하면1. 차 개수와 출발할 시작 위치의 차를 입력 그 후 차 개수만큼 각자의 위치와 연료를 입력2. 시작 위치에서의 차 연료에 따라 범위를 지정 - 지정한 범위 만큼의 차를 활성화3. 2번처럼 활성화 된 차 연료의 따라 범위 지정- 범위 내 차를 활성화 (반복)4. 활성화 된 차를 오름차순으로 정렬 후 출력 이다. 내가 생각한 방법은 활성화된 차를 스택 또는 큐 같은 공간에 넣은후 조건에 맞는 차를 다시 공간에 넣고 반복 하는것을 생각했다. 이런 문제들을 정형화된 방식으로 푸니깐 코드가 수수께끼 풀이처럼 복잡해 지니 방식을 바꾸기로 했다.많이 안썻던 struct를 활용하고 ..
-
마이크로프로세서(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번이동하면 불도 인근으로 번질수 있다는것이다.이러한 특징때문에 이 문제..