본문 바로가기

C++15

UINT32 정수형 IP주소 스트링 변환하기 / MFC / C++ 네트워크 관련 프로그래밍을 하다보면 IP주소를 정수로 표현하고 이를 String으로 바꾸거나 다시 String에서 정수형 IP주소로 바꾸는 경우가 잦다. Socket 라이브러리를 통해 바꿀 수 도 있지만 비트연산을 조합하여 변환도 가능하다. UINT32 IP 주소 -> CString IPv4의 IP주소는 본래 8비트짜리가 4개 합처진 형태이다. 때문에 8비트씩 시프트연산을 통해 각 옥텟 값을 가져올 수 있다. 아래는 MFC에서 UINT32 IP주소를 CString으로 변환하는 예시 코드이다. CString ipToString(UINT32 ipaddr) { CString ipStr; ipString.format(_T("%d.%d.%d.%d"), (ipaddr>>24) & 0xFF, (ipaddr>>16) .. 2020. 2. 13.
해커랭크(HackerRank) - Insert a node at the head of a linked list / C++ 문제 : 해커랭크 - Insert a node at the head of a linked list 난이도: Easy 언어 : C++ SinglyLinkedListNode* insertNodeAtHead(SinglyLinkedListNode* llist, int data) { SinglyLinkedListNode* ret ; if(llist == nullptr) { llist = new SinglyLinkedListNode(data); ret = llist; }else { SinglyLinkedListNode* nNode = new SinglyLinkedListNode(data); nNode->next = llist; ret = nNode; } return ret; } 2020. 2. 13.
해커랭크(HackerRank) - Insert a Node at the Tail of a Linked List / C++ 문제 : 해커랭크 - Insert a Node at the Tail of a Linked List 난이도: Easy 언어 : C++ SinglyLinkedListNode* insertNodeAtTail(SinglyLinkedListNode* head, int data) { if(head == nullptr ) { head = new SinglyLinkedListNode(data); } else { SinglyLinkedListNode* node = head; while(node->next!= nullptr ) { node= node->next; } node->next = new SinglyLinkedListNode(data); } return head; } 2020. 2. 13.
해커랭크(HackerRank) - Left Rotation / C++ 문제 : 해커랭크 -Left Rotation 난이도: Easy 언어 : C++ int main() { string nd_temp; getline(cin, nd_temp); vector nd = split_string(nd_temp); int n = stoi(nd[0]); int d = stoi(nd[1]); string a_temp_temp; getline(cin, a_temp_temp); vector a_temp = split_string(a_temp_temp); vector a(n); vector r(n); for (int i = 0; i < n; i++) { int a_item = stoi(a_temp[i]); a[i] = a_item; int idx = (n-d +i)%n; r[idx] = a[i.. 2020. 2. 11.
해커랭크(HackerRank) - 2D Array - DS / C++ 문제 : 해커랭크 - 2D Array - DS 난이도: Easy 언어 : C++ int hourglassSum(vector arr) { set sum; for(int i = 0;i 2020. 2. 11.
해커랭크(HackerRank) - Weighted Uniform Strings / C++ 문제 : 해커랭크 - Weighted Uniform Strings 난이도: Easy 언어 : C+ // Complete the weightedUniformStrings function below. vector weightedUniformStrings(string s, vector queries) { vector result; map weight; char prev = 0; int prevWeight = 0; for(int i = 0 ;i 2020. 2. 6.