본문 바로가기

전체 글140

[WIL] Day 13 Plan of attack(공격계획), 뭘배워야하는지 가이드: 섹션1에서 블록체인의 개요, 기초지식. 암호화폐, sha256해실 알고리즘. Immutable ledger배움, 다른 전통적인 ledger과의 비교. P2p network, immutable ledger를 적용시킨 네트워크. 채굴이 어떻게 이뤄지는지(논스). 암호화퍼즐. (수학개념) 비잔틴 내결함성/Byzantine fault tolerance. Consensus protocol(part1 defense against attackers, part2 competing chains). 블록체인 데모. ~What is blockchain?~ 컨셉은 Stuart Haber와 W.Scott Stornetta가 제시. 논문 “How to time-sta.. 2023. 6. 9.
[WIL] Day12 (기말준비 Day3) Binary search tree: 하나의 노드에는 key포인터, left, right, parent을 가지고 있다. Binary search tree는 같은 키들을 가지고 있어도 그 형태가 다양할 수가 있다. In order walk으로 정렬을 진행가능함. If x != NIL then Inorder-Walk(left[X]) Print key[x] Inorder-Walk(right[x]) In order walk의 시간복잡도는 O(n). 하나씩 찾아가야해서. search의 수도코드 Seach(k): If x!= NIL then If key[x] = k then return x If k key[x] then return Sea.. 2023. 6. 9.
[WIL] Day 11 (기말준비 Day 2) Upper bound이해: 최악의 경우에도 이 정도 이상은 안올라간다(어떤 그래프가 있을때), 그럼 오메가는 최고의 경우에도 이 정도 이하는 안올라간다? 재귀함수, 마스터 정리 어떤 알고리즘의 시간 복잡도 함수 T(n)이 다음과 같은 형태일때. T(n) = a * T(n/b) + c * n^k 이 함수 T(n)의 시간복잡도 클래스는 다음과 같다. T(n) ∈ θ(n^k) if a b^k 마스터 정리 문제 2개: https://www.youtube.com/watch?v=-bm0-k7UeV8&list=PLHqxB9kMLLaO2Zxb5exYYcN-Tin5pE-sK&index=2 Divide and.. 2023. 6. 6.
[WIL] Day 10 (기말준비 Day 1) Sorting 문제 삽입 정렬: 인덱스 0부터 n까지 점차 인덱스를 1씩 키워가면서 이미 정렬된 배열에 해당 인덱스의 숫자를 맞는 위치에 삽입을 해준다. 수도 코드: A는 input 배열, n은 배열 크기, key는 배열될 값 i값은 j-1, 즉 이미 정렬된 값중 가장 오른쪽값. 마지막 반복문은 i가 0보다 크고 A[i]가 key보다 클때까지 반복. key가 A[i]보다 크거나 같으면 반복문 탈출. INSERTION-SORT(A, n) For j 2023. 6. 2.
[WIL] Day 9 IP알아내는 법. InetAddress사용하기. InetAddress ia = InetAddress.getLocalHost() 하면 현재 로컬호스트의 ip주소 알려줌 InetAddress.getAllByName(“www.google.com”)하면 해당 도메인의 ip를 알수가 있다. 서버는 ServerSocket(port)로 해서 열수가 있다. 그 다음에는 ss.accept()로 클라이언트를 기다리게 된다. 클라이언트는 접속할려면 ip와 port가 필요하다. 클라이언트도 Socker인스턴스를 만들게 되고 ss.accept()에 접속하게 된다. 그런후 accept()이후 socket을 리턴하게 됨. 클라이언트와 서버 측 둘다 소켓이 생성이 된 것이고 두 소켓은 서로 연결된 관계이다. 두 소켓은 inputst.. 2023. 5. 16.
[WIL] Day 8 왜 그렇게 하지? 다시 한번 목표를 설정해줄게. 현재 우리의 목표는 스크랩하려는 json파일을 한 프레임씩 스크랩할 때마다 그에 대응되는 이미지값의 이름을 생성해내는 txt파일의 이름과 동일하게 만들어줘야되. 그러게하기 위해서 우리는 그 통일할 이름을 “{json파일 이름 } + {frame_number}”로 통일하기로 했어. 다만 지금 우리의 현재 디렉토리에서 해당 그림이 위치한 디렉토리로 이동하는데에 어려움을 겪고 있어. 그래서 내가 디렉토리의 구조를 다시 알려줄게. 디렉토리의 순서대로 얘기해줄게. 먼저 제일 큰 “PRV” 폴더가 있고 그 안에 ‘label’과 ‘original’ 폴더가 있어. 그리고 먼저 ‘label’의 하위 디렉토리를 살펴보면… ‘label’ -> ‘CAT’ ‘DOG’ -> (‘D.. 2023. 5. 14.
[WIL] Day 7 https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=realm&dataSetSn=59 해당 웹페이지에서 반려동물 행동데이터셋을 확보. 제목은 “반려동물 구분을 위한 동물 영상”인데 데이터보면 고양이랑 강아지 행동 분류 데이터임. 여기서 어노테이션이 나는 바운딩박스 밖에 없는 줄 알았는데 여기는 몇가지 key point로 어노테이션을 해주었음. json파일이 주어졌는데 기존에 사용하던 Yolov5에서는 keypoint detection을 지원하지 않는듯 하다. 그래서 Yolov7-pose(이것도 오픈소스 제작한듯) 활용을 해서 yolo format으로 먼저 바꿔야할듯 하다. Yolov7-pose 제작자분 설명 링크:.. 2023. 5. 14.
[WIL] Day 6 Collection은 바구니 add()를 통해서 데이터 추가, size()는 데이터 갯수를 알려줌. 바구니의 데이터를 꺼낼때 iterator사용, 꺼낼게 있는지 확인하는 것이 hasNext(), 꺼내주는 것이 next(). Collection자체로는 순서를 알수가 없음. List()는 collection을 상속, 다른 점은 순서를 기억을 해준다. get(int)로 순서대로 리턴해줄 수 있음. Set()은 중복을 허용하지 않음. 같은 데이터는 한번만 적용. Map(), key와 value를 가지고 있는 자료구조. push()로 저장, get()으로 key에 해당되는 value리턴. List()를 구현해준 클래스는 ArrayList()가 있고 Set()을 구현한 클래스는 HashSet(), Map()을 구현.. 2023. 5. 13.
[WIL] Day 5 array를 compare해주는 함수. Arrays.compare(배열1, 배열2), 리턴값이 int다. 같으면 배열1이 배열2보다 크면 양수 반대면 음수가 나온다. Arrays.sort(배열), 말그대로 배열을 정렬해주는 함수. Arrays.binarySearch도 있음. 어떤 객체를 정렬하기 위해서는 어떤 값을 기준으로 정렬해야 하는지 그 기준을 정해줄 필요가 있음. 그래서 해당 객체는 Comparable이라는 interface를 implements해주어야한다. 또는 sort함수에 비교방법을 정의한 클래스를 추가해주어도 된다. 해당 클래스는 Comparator라는 interface를 implement해주어야한다. intellij에서 command line arguement를 추가하는 방법은 아래와 같.. 2023. 5. 12.