프로그래밍
-
[C/C++] memset 함수 기본 사용법 및 예제프로그래밍/C++ 2019. 8. 28. 01:36
사용 환경 · 목적 · 메모리의 시작점부터 연속된 범위를 임의의 값으로 초기화 하고 싶은 경우 사용 -> (모든 값은 바이트 단위로 저장된다.) 기본 함수 구조 · memset( void * ptr, int value, size_t num ); · ptr : 채우고자 하는 메모리의 시작 주소 · value : 채우고자 하는 값 · num : 채우고자 하는 메모리의 크기 취약점 · memset 함수는 1바이트 단위로만 동작하기 때문에 0,-1 을 제외한 다른 숫자는 원하는 값이 안 나올 수 있습니다. 대표적으로 int 는 32비트로 4바이트가 됩니다. · 여기에 1이란 값을 넣으면 1바이트 마다 0x01 이라는 값이 채워집니다. 그렇게 4바이트가 채워지면 0x( 01 01 01 01) 이 채워지면서 다른 ..
-
[C/C++] C++ STL Pair 기본 사용법 및 예제프로그래밍/C++ 2019. 8. 23. 08:48
사용 라이브러리 · 기본함수 선언문 · pair p; 생성 · make_pair(자료형, 자료형) : 두개의 원소를 묶은 pair를 만든다. 조회 · first : 첫번째 인자를 반환 · second : 두번째 인자를 반환 기본 응용 · vector · v.push_back( pair( 자료형, 자료형 ) ) : 보통 좌표값을 배열에 저장할때 사용 예제 코드 #include #include #include using namespace std; int main() { //////////선언//////// pair p; //////////생성/////// //둘다 차이 없으니 편한걸 사용 p = make_pair(1, 2); p = { 1,2 }; ////////응용/////// ve..
-
[C/C++] C++ STL Stack 기본 사용법 및 예제프로그래밍/C++ 2019. 8. 22. 16:05
사용 라이브러리 · 기본함수 선언문 · stack s; 삽입 및 추출 · push(element) : 가장 위에 원소를 삽입 · pop() : 가장 위에 있는 원소 추출 조회 · top() : 가장 위에 있는 원소를 가져옴 기타 함수 · empty() : 비어있는 경우 1을 , 그렇지 않은 경우 0을 반환 · size() : 원소의 수를 반환 예제 코드 #include #include using namespace std; int main() { stack s; ////////////삽입 및 추출///////////////// s.push(1); // 1 s.push(2); // 2 1 s.push(3); // 3 2 1 s.push(4); // 4 3 2 1 s.pop(); // 3 2 1..
-
[C/C++] C ++ STL Queue 기본 사용법 및 예제프로그래밍/C++ 2019. 8. 21. 23:58
사용 라이브러리 · 기본함수 선언문 · queue q; 추가 및 삭제 · push(element) : 가장 뒤에 원소를 삽입 · pop() : 가장 앞에 있는 원소 추출 조회 · front() : 가장 앞에 있는 원소를 가져옴 · back() : 가장 뒤에 있는 원소를 가져옴 기타 함수 · empty() : 비어있는 경우 1을 , 그렇지 않은 경우 0을 반환 · size() : 원소의 수를 반환 예제 코드 #include #include using namespace std; int main() { queue q; // q 라는 이름으로 queue를 선언 ///////////삽입 및 추출///////////////// q.push(1); // 1 q.push(2); // 1 2 q.push(..
-
[Bixby Studio] 지하철 알림이.capsule프로그래밍/Bixby Studio 2019. 7. 2. 23:47
1. 빅스비 캡슐 챌린지란 ? 2. 빅스비 스튜디오를 다루기 위한 기본소양 3. 지하철 알림이.capsule 에 대한 간단한 설명 4. 문제 해결 빅스비 캡슐 챌린지란 ? 삼성에는 빅스비라는 인공지능 기술이 있습니다. 캡슐(Capsule)이란 빅스비 지원 기기에서 이용할 수 있는 서비스로 빅스비 플랫폼 전용으로 개발된 서비스를 말합니다. 쉽게 말해서 이 캡슐을 개발하면 사용자가 원하는 빅스비 기능을 구현할 수 있는 것입니다. 이 대회의 참가자격은 개인, 단체, 법인까지 모두 참여가 가능합니다. 그렇기 때문에 일반적인 대학생 참가팀들은 경쟁력이 다소 부족할 수 있어 보입니다. 하지만 외부 개발자들은 기존에 만들어진 애플리케이션을 연동하여 사용하는 기능을 제한하였기 때문에 절대 이기지 못할 싸움..
-
[알고리즘] 동적 계획법(Dynamic Programming)프로그래밍/알고리즘 2019. 6. 7. 23:56
List 1. 동적 계획법(Dynamic Programming) 이란? 2. 피보나치수열 구현 3. 메모이제이션(memoization) 동적 계획법(Dynamic Programming) 이 알고리즘은 다이나믹 프로그래밍 또는 DP라고 많이 불립니다. 이전에 배웠던 알고리즘과 차이가 있다면 큐(queue) , 스택(stack)처럼 특정 자료구조를 사용해야 하는 고정적인 개념이 아니라는 겁니다. 이름의 프로그래밍(Programming) 이란 단어가 의미하는 것은 컴퓨터 언어로 코딩을 하는 것을 말하는 것이 아니라 "계획하다"의 의미를 갖고 있습니다. 따라서 이 알고리즘은 특정 문제들을 특수한 형태로 계획해서 풀어나가야 할 때 사용됩니다. 동적 계획법은 대회나 SW 역량테스트 등의 등장 빈도가 아주 높고 기본..
-
[알고리즘] 집합 찾기(Union Find)프로그래밍/알고리즘 2019. 6. 5. 20:17
List 1. 연결 리스트를 이용한 집합 찾기 2. 배열을 이용한 집합 찾기 3. 트리를 이용한 집합 찾기 4. 연산의 효율을 높이는 법 ※ 코드구현은 생략 연결 리스트를 이용한 집합 찾기 연결리스트를 이용한 표현에서 집합의 원소는 노드로 표현이 됩니다. 각 노드에는 원소를 저장하는 필드, 다음 원소와 대표 원소를 기리키는 두 개의 포인터가 있습니다. 다음 원소를 가리키는 포인터를 통해 집합의 모든 원소들이 연결됩니다. 여기서 대표 원소는 각 집합의 가장 앞에 있는 원소를 의미합니다. 그리고 각 집합에는 마지막 원소를 가리키는 tail 변수 라는것이 존재합니다. 이 변수는 두 집합을 합칠 때 이용됩니다. 하나의 원소 x 만을 갖고 있는 집합이 있다고 가정해봅시다. 연결 리스트의 한 노드의 구성은 오른쪽 ..
-
[알고리즘] 탐욕적 기법(Greedy Algorithm)프로그래밍/알고리즘 2019. 5. 29. 16:02
Goal 1. 탐욕적 기법(Greedy Algorithm)의 개념 2. 탐욕적 기법(Greedy Algorithm)의 특징 3. 탐욕적 기법(Greedy Algorithm)의 구현 서론 가장 유명하지만 가장 기초적이어서, 알고리즘에 입문하기 가장 좋은 녀석입니다. 접근법이 굉장히 직관적이고 단순하기 때문에 알고리즘 대회, 코딩 테스트에서 적지 않게 볼 수 있습니다. 그래서 저는 그리디 알고리즘 문제를 적어도 10 문제 정도는 풀어보고 다른 알고리즘을 풀어보시는 걸 추천드립니다. 왜냐하면 10문제 정도 풀어보시면, 내가 생각하는 것을 코드로 구현하는 능력과 문제를 직관적으로 보는 능력이 생기기 때문입니다. 개념 서론이 길었습니다. 탐욕적 기법(Greedy Algorithm), 욕심쟁이 기법 혹은 그냥 그리..