본문 바로가기

전체 글27

C++/ Stack 자료구조 정리 Stack의 정의 - 마지막에 입력된 자료가 가장 먼저 출력되는 LIFO(Last In First Out) 방식의 자료구조 - top 이라는 인덱스 위치를 통해 push와 pop이 이루어지며, 초기상태의 top은 0 또는 -1이 된다 - top의 최대 크기 = 스택의 크기 Stack의 응용 분야 - 서브루틴 호출시 복귀 주소(Return Address) 저장 - Recursive Program(재귀 함수) 수행 시 사용 - 인터럽트 발생 시 상태 저장 - 후위식 변환 - 버퍼 - 트리 운행 시(preorder, postorder, inorder) - DFS - Quick Sort 배열로 구현해본 Stack C++ STL에서 stack을 제공하지만 직접 구현부터 해봐야 할 것 같아서 배열을 이용해 코드를 .. 2020. 12. 26.
Hyperledger Fabric 사용을 위한 블록체인 정리 1. 블록체인의 개념 블록체인이란 무엇인가? IBM 사에 따르면 블록체인이란, 더보기 비즈니스 네트워크에서 트랜잭션을 기록하고 자산을 추적하는 프로세스를 효율화하는 불변의 공유 원장입니다. 자산은 유형 자산(주택, 자동차, 현금, 토지) 또는 무형 자산(지적 재산권, 특허, 저작권, 브랜드)일 수 있습니다. 사실상 가치를 지닌 모든 것들이 블록체인 네트워크 상에서 추적되고 거래됨으로써, 연루된 모든 것들에 대한 리스크를 줄이고 비용을 절감할 수 있습니다. 이라고 한다. 블록체인은 기존의 중앙 집중형 데이터 처리방식과 달리 p2p 네트워크 상에 존재하는 노드의 수만큼 같은 장부가 복제되어 분산 저장되어 있는 형태를 일컫는다. 즉 "공유 원장"에 모든 네트워크 참여자가 접근을 할 수 있으며, 트랜잭션은 한 번만 기록되기 때문에 .. 2020. 12. 15.
C++/공주구하기 + 조세퍼스 인프런 45강 공주구하기 알고리즘 강의를 들었고, 지난번에 봤던 코딩테스트에서 나왔던 문제라 기억이 났다 (아니면 프로그래머스에서 풀었었나..? 암튼 푼 적이 있음) 굉장히 간단한 알고리즘인데 생각해 내는게 쉽지 않았고, 같은 방법을 재활용하면 문제 해결력이 높아질 것 같아서 정리! 공주 구하기 더보기 정보 왕국의 이웃 나라 외동딸 공주가 숲속의 괴물에게 잡혀갔습니다. 정보 왕국에는 왕자가 N명이 있는데 서로 공주를 구하러 가겠다고 합니다. 정보왕국의 왕은 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 했습니다. 왕은 왕자들을 나이 순으로 1번부터 N번까지 차례로 번호를 매긴다. 그리고 1번 왕자부터 N 번 왕자까지 순서대로 시계 방향으로 돌아가며 동그랗게 앉게 한다. 그리고 1번 왕자부터 시.. 2020. 12. 14.
C++/ 교집합(투 포인트 알고리즘) + STL sort 인프런 인강 40강에서 나온 투 포인트 알고리즘. 두 배열에 대한 교집합을 찾아서 새로운 배열에 할당하는 문제인데, 이중 포문을 돌리는 것이 아님 (중요!) 1. 두 배열을 정렬시킴 2. 각 원소를 비교, 만약 같다면 새로운 배열에 배치하고 한개가 작다면 그 배열의 포인트를 증가시킴 이 강의가 중요했던 이유! - 이중 포문의 저주에 걸린 나의 시각을 조금이나마 넓혀줌 - algorithm 헤더에 sort가 있다는 것을 깨달음 python으로만 했어서 C++ 라이브러리를 전혀 알고있지 않은 상태인데 이렇게라도 알아야한다,,, #include #include #include using namespace std; int main(){ int n,m,i,p1=0,p2=0,p3=0; scanf("%d",n); v.. 2020. 11. 8.
C++/ 삽입정렬 이번에야 말로 제대로 이해하기 알고리즘 공부하면서 정렬을 수 없이 많이 거쳐갔지만.. 실제로 머리에 남은건 1도 없다 이번에야 말로 제대로 이해하고 넘어가야 다음 것들도 수월하게 할 수 있을 것이라는 생각이 들어서 정리해 보려고 한다. 삽입정렬(Insertion sort)이란? - 자료 배열의 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입하는 정렬. 알고리즘 순서 1. 첫 번째 자료를 tmp 변수에 선정. 2. i=1, 즉 두 번째 자료에서부터 for loop를 돌린다. 3. 이중 for loop 안에서는 j가 i-1부터 0까지 돌며 , tmp와 각 자리의 값을 비교한다. 4. 만약 tmp 값이 j 자리의 자료보다 작다면, j 자리의 자료를 오른쪽으로 한 자리 당긴다. (내림차순 기준) 5. .. 2020. 11. 6.
C++ Vector를 이용한 배열의 동적 메모리 할당 Cplusplus 인용 - 더보기 VectorVectors are sequence containers representing arrays that can change in size. Just like arrays, vectors use contiguous storage locations for their elements, which means that their elements can also be accessed using offsets on regular pointers to its elements, and just as efficiently as in arrays. But unlike arrays, their size can change dynamically, with their storage be.. 2020. 10. 24.
반응형