본문 바로가기
반응형
[로드맵] C/C++/C# 로드맵 1. C 언어- ANSIC → C99 → C11/C17 → C231.1 C언어(기본: ANSIC)- 환경설정- 소개 및 특징- 변수, 자료형 및 형변환: bool/char/short/int/long long/float/double/typedof/const- 연산자: - 산술: +/-/*///% - 비교: ==/!=/>/>=/1.2 C언어(상세) 1.3 C언어(추가: ANSIC 이후) 2. C++- C++98 → C++11/14/17 → C++20 → C++232.1 C++(기본: C++17)- 클래스: 정의/호출/클래스변수/인스턴스변수/클래스메서드/인스턴스메서드/생성자/소멸자/getter/setter- 클래스: 접근제어자(private,public,protected)/상속/다이아몬드상속/오버.. 2024. 7. 13.
[코딩테스트] 해시 해시 unordered_map 다루기#include int main(int argc, char** argv) { /* 생성 및 초기화 */ unordered_map dict1 = {{"key1": val1}, {"key2": val2}, {"key3": val3}}; /* 삽입 */ dict1["key"] = val; dict1.insert({"key": val}); dict1.insert(make_pair("key", val)); /* 삭제 */ dict1.erase("key"); /* 탐색 */ dict1.find("key"); /* 조회 */ for (auto it = dict1.begin(); it != dict.. 2024. 7. 9.
[코딩테스트] 큐 큐- FIFO(First In First Out): 먼저 들어간 데이터가 먼저 나오는 구조- 작업 대기열이나 이벤트 처리에 사용 queue 다루기#include int main(int argc, char** argv) { /* queue 생성 및 초기화 */ queue q; /* 삽입 */ q.push(val); /* 삭제 */ q.pop(); /* 조회 */ while (!q.empty()) { std::cout 문제 추천- 기능 개발(Lv2)- 카드 뭉치(Lv1)+) - 다리를 지나는 트럭(Lv2) 2024. 7. 9.
[코딩테스트] 스택 스택- FILO(First In Last Out): 먼저 들어간 데이터가 나중에 나오는 구조- 함수 호출시 메모리의 스택에 사용 stack 다루기#include int main(int argc, char** argv) { /* stack 선언 및 초기화 */ stack s; /* 추가 및 삭제 */ s.push(val); s.pop(); /* 조회 */ while (!s.empty()) { std::cout 문제 추천- 괄호 회전하기(Lv2)- 짝지어 제거하기(Lv2)- 주식 가격(Lv2)- 크레인 인형 뽑기 게임(Lv1)- 표 편집(Lv3)+)- 같은 숫자는 싫어(Lv1)- 올바른 괄호(Lv2)- 컨트롤 제트(Lv0) 2024. 7. 9.
[코딩테스트] 배열 / 연결리스트 배열- 배열: 같은 타입의 원소들을 효율적으로 관리하기 위한 기본 자료형- 연속된 메모리를 이용한 자료구조- 탐색: O(1), 맨 뒤 삽입: O(1), 맨 앞/중간 삽입: O(N)- 배열 선택시 고려할점: 할당 가능한 메모리 크기 확인/중간 데이터 삽입 횟수 확인 배열 다루기#include int main(int argc, char** argv) { /** 배열 선언 및 초기화 * 배열 선언: type arr_name[size]; * 배열 초기화(기본값은 0): type arr_name[size] = {val1, ...}; */ int arr1[] = {1, 2, 3, 4, 5}; int arr2[5] = {1, 3, 4}; // 나머지는 0 int.. 2024. 7. 9.
[코딩테스트] 특징 및 소개 코딩테스트  코딩테스트 사이트- 프로그래머스: 네이버, 카카오 등 IT 기업들의 코딩테스트 사이트- 백준 온라인 저지- solved.ac: 백준 온라인 저지를 단계별로 분류- SW Expert Academy: 삼성 코딩테스트 사이트- Softeer: 현대 자동차그룹 코딩테스트 사이트이론시간복잡도- Time Complexity는 알고리즘의 성능을 나타내는 지표로 입력 크기에 따른 연산횟수의 추이를 활용- 점근표기법인 Big-O Notation을 사용공간복잡도 C++ 필수 문법자료형- 정수형(short, int, long long): short는 2bytes; int는 4bytes; long long은 8bytes- 실수형(float, double): float는 4bytes; double은 8bytes- .. 2024. 7. 9.
[환경설정] C++ 환경설정 WindowsC++ 사용법(Visual Studio)1. Visual Studio 2022 다운로드- Community: 무료 버전- Professional: 유료 버전 C++ 사용법(GCC)1. MinGW-w64 다운로드 및 설치- MinGW(간단 설치) 2. gcc 버전확인gcc --versiong++ --version  MacOSC++ 사용법1. termial에서 xcode 설치xcode-select --install2. gcc 버전확인gcc --versiong++ --version 2024. 7. 5.
[C++로 배우는 알고리즘과 자료구조] Day 1: 알고리즘과 자료구조 소개 알고리즘과 자료구조란?알고리즘 (Algorithm)알고리즘은 주어진 문제를 해결하기 위해 설계된 일련의 절차나 방법입니다. 알고리즘은 컴퓨터 과학에서 매우 중요한 개념으로, 효율적인 문제 해결과 성능 최적화를 위해 필수적입니다.알고리즘의 특징:명확성 (Clarity): 각 단계는 명확하고 이해하기 쉬워야 합니다.유한성 (Finiteness): 알고리즘은 반드시 종료되어야 합니다.입력 (Input): 0개 이상의 입력이 있어야 합니다.출력 (Output): 1개 이상의 출력이 있어야 합니다.효율성 (Efficiency): 시간과 공간 측면에서 효율적이어야 합니다.자료구조 (Data Structure)자료구조는 데이터를 저장하고 조직화하는 방법입니다. 자료구조는 데이터에 대한 접근 및 수정 작업을 효율적으로.. 2024. 7. 1.
[C++ 네트워크 프로그래밍] 목차 C++ 네트워크 프로그래밍 시리즈Day 1: 네트워크 프로그래밍 소개와 개발 환경 설정Day 2: 소켓 프로그래밍 기초 (TCP)Day 3: 소켓 프로그래밍 기초 (UDP)Day 4: 비동기 소켓 프로그래밍Day 5: 네트워크 데이터 직렬화Day 6: 네트워크 프로토콜 기초Day 7: 네트워크 디버깅 기법Day 8: HTTP 프로토콜 개요Day 9: HTTP 클라이언트 개발 (libcurl)Day 10: HTTP 서버 개발 (Boost.Beast)Day 11: RESTful API 설계와 구현Day 12: 웹 소켓 프로그래밍 기초Day 13: 웹 소켓 클라이언트 개발Day 14: 웹 소켓 서버 개발Day 15: 멀티스레드 서버 개발 (Boost.Asio)Day 16: 비동기 I/O와 이벤트 드리븐 프로그.. 2024. 6. 20.
[C++ 심화 알고리즘과 자료구조 시리즈] 목차 C++ 심화 알고리즘과 자료구조 시리즈Day 1: 트라이(Trie) 자료구조와 문자열 검색Day 2: 세그먼트 트리(Segment Tree)Day 3: 펜윅 트리(Fenwick Tree, Binary Indexed Tree)Day 4: 이면 탐색 트리(Treap)Day 5: 균형 이진 탐색 트리(AVL 트리, Red-Black 트리)Day 6: 스플레이 트리(Splay Tree)Day 7: 스킵 리스트(Skip List)Day 8: 최소 커버링 트리(Minimum Spanning Tree) 심화Day 9: 최단 경로 알고리즘 심화 (벨만-포드, 존슨 알고리즘)Day 10: 위상 정렬(Topological Sorting)Day 11: 강한 연결 요소(Kosaraju, Tarjan 알고리즘)Day 12: 네.. 2024. 6. 20.
반응형