728x90
728x90

c++ 256

DataStructure] C++ 연결 리스트(Single Linked List)

2학년 1학기(벌써 작년이다)에 필자는 C언어로 자료구조론을 배운 적이 있다.당시에는 C언어로 모든 것을 작성했었다.자료구조도 복습하고, C++ 연습하는 겸,C++로 자료구조들을 구현하는 시도를 하고 있다.오늘은 그 첫번째 시도로 단일 연결 리스트(혹은 단순 연결 리스트;Single Linked List)를 만들어봤다. head, tail, 중간 삽입이 모두 가능하고,삭제하는 건 head에서만 이뤄지도록 했다.그냥 구현에 초점을 둬서 완벽한 예외처리나, template을 활용하거나 하지는 않았지만,근시일내에 그런 걸 다 집어넣고 다시 한 번 짤 생각이다. (왜 remove만 핫핑크로 하이라이팅되는 거지?...) #include using namespace std; class Node { friend cl..

Jungol] 1394 : 양팔저울

문제 주소 : http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=670&sca=4040 나는 이 문제를 수학적으로 생각해서 풀이를 진행했다. 그래서 문제 풀이에 아쉬움이 남는다.(이게 모범 답안일수도 있겠지만, 또 다른 답안이 있으리라..) 좀 더 특별한 방법이 있다면 차후에 다시 생각하여 올려보도록 하겠다. 나는 이 문제를 풀면서 토너먼트 방식을 사용했다. 물건이 몇개가 되더라도 2개씩만 비교할 수 있다는 양팔저울의 특성 상, N(N>=2)개의 물건 중 가장 질량이 큰 것이 무엇인지 정확히 알아내기 위한 최소한의 시행 횟수는 N-1번이면 된다. 가장 무거운 물건을 찾는 것은 정밀한 측정이 필요가 없기 때문에, A가 무거운지 B가 무거운지에 대한 정..

API] SetWindowsHookExA 함수

SetWindowsHookExA function 123456HHOOK WINAPI SetWindowsHookEx( _In_ int idHook, _In_ HOOKPROC lpfn, _In_ HINSTANCE hMod, _In_ DWORD dwThreadId);cs user32.dll에 있는 해당 함수를 통해 훅을 설정할 수 있음.대표적인 함수로, MSDN에서 해당 함수의 구조와 사용법에 대해서 알 수 있음. 첫번째 인자, 훅 타입으로 어떤 종류의 메세지를 후킹할 것인지 선택하는 것두번째 인자, Hook Procedure세번째 인자, 후킹할 스레드가 속해 있는 DLL의 핸들네번째 인자, 후킹할 스레드 아이디 첫번째 인자에 들어갈 훅 타입은 구글링으로 체크 가능두번째 인자로 사용할 훅 프로시저, 파이썬의 경..

C, C++] 함수를 인자값으로 활용하기

함수를 인자값으로 활용하여전달된 함수에 따라 내림차순과 오름차순 정렬을 시행하게 하는 프로그램어지간한 과제는 그냥 무난하게 했는데 이번 건 보고 조금 당황.함수를 인자값으로 쓰는 일이 드물다 보니까, 처음에 보고 좀 난해했음.사용된 정렬은 삽입정렬(Insertion Sort) 1234567891011121314151617181920212223242526272829303132#include #include #define TRUE 1#define FALSE 0 typedef int element; int ascend(element x, element y){ if (x y) return FALSE; return TRUE;}void InsertionSort(element list[], int n, int (*f..

Arduino] 7세그먼트 사용하기

세그먼트 자체에 대한 이해도 필요했고, 캐소드식과 애노드식에 대한 이해도 필요해서 꽤 오래 걸렸습니다. 어젯밤에 진짜 삽질해가지고, 작동은 커녕 아두이노 기판을 못 쓸 지경으로 만들 뻔했습니다. 회로에 대해서 최소한의 지식이 있다고 생각은 했는데, 정말 만행을 저질러서.. 새벽에 일어나서 회로를 보고 다시 적용해서 작동하는데 성공했습니다. 지금 당장 아두이노를 해보면서 느끼는 건 코딩쪽에서의 애로사항보다는 회로쪽에서 애로사항이 더 많습니다. 최소한의 지식마저도 없이 접근하면 합선이 발생해 기판이 고장나는 것과 같은 문제가 발생하겠구나 싶었습니다. 저도 배우는 입장이라, 직접 해보면서 많이 배웁니다. 기껏해봐야 LED, 부저, 세그먼트, 온도센서 이 네 가지밖에 안 건드렸는데도, 꽤나 배운게 많습니다. 1..

C,C++] Strlen와 동일한 기능을 하는 함수 구현

사실 함수 구현이라고 적어두긴 했으나,strlen과 비슷한 함수를 작성한 것 뿐이며,포인터를 이용하거나 하지 않았기 때문에,사용자가 정의한 함수라고 보기도 어렵다.그저 이러이러한 논리로 strlen과 비슷할 것이다가 전부일 뿐이므로, 오해는 금물이다.이 소스를 int str_len(char *s)와 같은 함수를 이용하여 strlen함수와 유사하게 만들 수 있다. 12345678910111213141516#include #include using namespace std; int main(){ char str[40] = "Make String Library Function"; int func, i = 0; func = strlen(str); while (str[i] != 0) i++; cout

728x90