Posts by Year

2025

[C++] tuple

tuple 다양한 타입의 여러값을 하나의 객체로 묶어서 저장할 수 있는 컨테이너 다른 자료형의 여러 데이터를 하나로 묶는 자료구조 pair의 확장된 버전

[C++] vector 초기화 시 v(), v[] 차이

vector v[] vector<int> v[1001]은 1001개의 vector<int>를 담고 있는 정적 배열이다. 각 요소가 벡터이므로, 각 인덱스마다 서로 다른 정점의 연결 정보를 저장할 수 있다. 주로 그래프의 인접 리스트를 구현할 때 사...

Back to top ↑

2024

[C++] emplace_back vs push_back

emplace_back push_back과 유사하게 새로운 요소를 컨테이너(vector, deque)의 끝에 추가하는 기능. 새로운 객체를 직접 생성하여 삽입할 수 있다는 점에서 push_back과 차이가 있다.

[C++] set vs unordered_set

set 이진탐색트리(Red-Black Tree)로 구현 중복값 허용하지 않음 요소들이 자동으로 정렬된 상태로 저장되어 순서대로 데이터를 다루거나 순차적으로 탐색할 때 유리 {3, 1, 2}를 set에 넣으면 {1, 2, 3}으로 정렬 상대...

[C++] map vs vector<pair>

map #include <map> c++ 표준 템플릿 라이브러리(STL: Standard Template Library)에서 제공하는 표준 컨테이너 데이터를 키(key)와 값(value)의 쌍으로 저장 키(key): 데이터를 식별하기 위한 ...

[programmers/C++] [PCCP 기출문제] 1번 / 동영상 재생기

문제 설명 당신은 동영상 재생기를 만들고 있습니다. 당신의 동영상 재생기는 10초 전으로 이동, 10초 후로 이동, 오프닝 건너뛰기 3가지 기능을 지원합니다. 각 기능이 수행하는 작업은 다음과 같습니다.

XRCE-DDS vs uORB

XRCE-DDS “eXtremely Resource-Constrained Environments Data Distribution Service”의 약자 ROS2와 PX4 또는 다른 시스템간의 외부 통신을 위한 미들웨어 주로 리소스가 제한된 임베디드 시스템에서 DDS(D...

MAVSDK란?

MAVSDK 정의 MAVLink 프로토콜을 사용하여 PX4와 같은 드론 플랫폼과 통신하는 SDK이다. MAVLink 기반의 고수준 제어 API를 제공하며 이를 통해 드론의 제어와 데이터 수집이 간편하게 이루어진다. MAVLink는 저지연 통신 프로토콜로 드론과 GCS(...

uORB란?

uORB의 정의 “micro Object Request Broker”의 약자 PX4에서 사용되는 내부 통신 프레임워크 PX4의 여러 모듈들 간에 데이터를 주고받을 수 있게 해주는 *발행/구독(publish/subscribe) 모델의 메시지 버스 역할을 한다. ...

TurtleBot3

TurtleBot이란? TurtleBot은 *ROS(Robot Operating System)라는 로봇 소프트웨어 플랫폼을 사용하여 제어되며, 1967년 교육용 프로그래밍 언어 Logo의 Turtle 로봇에서 유래했다. 재미있게도 ROS의 기본 튜토리얼에 등장하는 turt...

브루트 포스(Brute Force) 알고리즘

완전탐색, 브루트 포스(Brute Force) 알고리즘 Brute: 단순한, 무식한 Force: 힘 가능한 모든 경우의 수를 다 검사해보는 방식의 알고리즘 문제를 해결하는 가장 직관적이고 단순한 방법 중 하나이다.

[Baekjoon/C++] 25206번 너의 평점은 - stringstream

문제 설명 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다!

[C++] map vs unordered_map

unordered_map <unordered_map>헤더에 정의되어 있다. unordered_map<int, string> myMap와 같은 형식으로 사용한다. 해시 테이블을 기반으로 하는 연관 컨테이너이다. 평균 시간 복잡도는 O(1)이다.

[C++] transform 함수

transform(v.begin(), v.end(), new_v.begin(), ::tolower/::toupper) <algorithm>헤더에 정의되어 있다. v.begin()부터 v.end()까지의 범위에 있는 요소들에 주어진 함수를 적용시킨다. 세 번째...

[C++] reverse() 함수

reverse(word.begin(), word.end()) <algorithm>헤더에 정의되어 있다. 컨테이너(ex.배열, 벡터, 문자열 등)내의 요소들의 순서를 뒤집는데 사용된다. 반환값이 없으며, 입력된 컨테이너 자체가 변경된다.

[Baekjoon/C++] 10811번 바구니 뒤집기

문제 설명 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2번째 바구니, …, 가장 오른쪽 바구니를 N번째 바구니라고 부른다.

[C++] binary_search()

binary_search(vector_begin, vector_end, find_value) <algorithm> 헤더에 정의되어 있다. 데이터가 정렬 sort() 되어 있다는 가정하게 사용가능하다. vector_begin은 시작주소, vector_end는 ...

Android Studio/Android SDK 설치

Android SDK Android 단말기와 연결하기 위해선 Android SDK 필요 Android Studio를 설치하면 Android SDK도 함께 설치됨

[programmers/C++] 옹알이(1)

문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 “aya”, “ye”, “woo”, “ma” 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할...

Back to top ↑