전체 글
-
블록체인이란?네트워크/블록체인(Blockchain) 2020. 4. 26. 17:46
다들 블록체인(Blockchain)이라 하면 모르는 사람이 많다. 하지만 "그럼 비트코인은 알아?"라면 이게 그거냐는 말을 하는 사람이 많다. 사실 일반인들에게 블록체인은 친숙하지 않다. 사실 굳이 친숙할 필요는 없다. 모든 소프트웨어의 개발, 발전은 이런 사람들의 삶의 질을 높이기 위함이고 그를 굳이 알려줄 필요는 없다. 하지만 전공자라면 말이 다르다. 중앙화 되어 있는 대부분의 은행, 금융 관련 기업 심지어 거의 대부분의 시스템의 보안을 강화하기 위해 도입된 블록체인을 전공자라면 꼭 알고 가야 할 필요가 있다. 그럼 블록체인은 무엇일까? 위키백과에 따르면 '블록'이라는 단위로 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장 환경에 저장하는 방식을 뜻한다. 이 블록..
-
코테 일기(12) : 백준 [11047번] 동전 0프로그래밍/C++ 2020. 4. 23. 17:57
전형적인 그리디 알고리즘이다. 그리디 알고리즘(Greedy Algorithm) 이란? 매 선택에서 지금 이 순간 당장 최적인 답을 선택하는 알고리즘이다.Dijkstra와 다르게 현재 노드에서 다음 노드까지만 생각하는 "오늘만 사는 알고리즘" 이라고 할 수 있다. 그래서 그리디 알고리즘 자체의 난이도가 낮을 수 밖에 없다. 무한한 while문 속에서 현재에 해당하면 continue, 해당하지 않으면 break와 같은 극과 극의 알고리즘이다. 코드 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int get_coin(vector coin, int value) { int count = 0; int i = coin...
-
SpringBoot를 AWS의 instance에 넣기[1]-기본 설정웹프로그래밍/Springboot(Java, Kotlin) 2020. 4. 22. 21:13
Jenkins라는 자동화 빌드 도구를 사용하기 위해 NodeJS를 접고 자바 기반의 Springboot를 사용하기로 했다. 그래서 인텔리제이의 IDEA를 설치해서 AWS Instance와 연결하기로 했다. IntelliJ 설치 주소 : https://www.jetbrains.com/idea/download/#section=windows 내 블로그의 NodeJS에서 어떻게 라이센스를 얻어서 설치를 했는지의 과정이 나왔기에 모두 생략해주고, 자바를 실행 할 수 있는 개발 환경 도구인 IDEA를 설치해준다. 이런 단계는 쭉쭉 지나가서... 인증까지 모두 마쳐주자. new project를 선택 후, Spring Initializer를 클릭, 그리고 Next버튼을 눌러주자. 프로젝트 이름을 제외하고 아무것도 안 ..
-
코테 일기(11) : 백준 [1780번] 종이의 개수프로그래밍/C++ 2020. 4. 22. 20:28
전형적인 divide and conquer 문제이다. 코드를 짜는데 30분 밖에 걸리지 않았지만, 그 놈의 시간초과 때문에 한참을 애썼다. 코드 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int pr[3]; //pr[0] -> -1, pr[1] -> 0, pr[2] -> 1 vector input; //입력 받을 배열 typedef struct { int row; int col; } place; void div_paper(int param, place pl) {//배열과 배열 크기, 위치를 인자로 넣음 if (param == 1) { //크기가 1개면 바로 return 할 수 있게 함. if (input[..
-
코테 일기(10) : 백준 [1051번] 숫자 정사각형프로그래밍/C++ 2020. 4. 21. 23:11
DP(Dynamic Programming)를 풀다가 머리가 아파서 잠깐 brute force로 돌렸다... 역시 어려운 것을 하다가 쉬운 것을 풀면 너무 빨리 풀린다. 총 코딩 시간 10분, 삽질 20분... 정답률 37%는 아무래도 오답을 했던 기록까지 포함해서 인지 상당히 낮다. 하지만 난이도는 초보자도 풀 수 있을 정도라는 것. (전형적인 brute force 문제이다.) 코드 #include #include #include using namespace std; int find_square(vector arr) { int result = 1; for (int i = 0; i < arr.size(); i++) { // 행 위치 for (int j = 0; j < arr[0].size(); j++) {..
-
코테 일기(9) : 백준 [2178번] 미로찾기(BFS)프로그래밍/C++ 2020. 4. 21. 18:06
이번에 풀 문제는 백준 2178번 미로찾기이다. DFS, BFS는 꼭 알고 가야 하는 탐색기법이기에 풀어보기로 했다. 정답률은 35%로 충분히 풀만한 오기가 생겼다. 처음엔 실력도 모자란 내가 풀어도 될까? 라는 마음이 들었지만 언젠간 넘어가야 할 산이다. 처음 든 생각 DFS로 stack을 사용해서 푸는것이 더 편해 보였다. 하지만 문제에서는 BFS를 요구했으니 넓이 탐색으로 풀기로 했다. 연속된 1을 통해 array의 마지막에 도달하는 것이 우리 최종 목표이다. 먼저 queue의 size가 0 이 아닌 한 반복을 해야 할 것이고 while (queue.size() > 0) queue의 front를 받아와서 한 단계 씩 나아가야한다. (queue.front()) 이후 상하좌우를 모두 검색하여 1이 존재..
-
코테 일기(8) : 하노이탑(The tower of Hanoi)프로그래밍/C++ 2020. 4. 20. 14:02
하노이탑은 Divide and Conquer(정복 분할 기법)에서 가장 많이 다뤄지는 문제 중 하나다. A에서 B를 거쳐 C로 옮기기 위해 하노이 탑의 순서는 다음과 같다. 1. (1,2)를 B로 옮긴다. 2. (3)을 C로 옮긴다. 3. (1,2)를 C로 옮긴다. 이를 코드로 그대로 옮기면 다음과 같다. Code //하노이탑 만들기 #include using namespace std; int hanoi(int a, int b, int c, int d); int main() { int N; cout
-
Computer Vision(Gaussian Filtering)[4]-Hybrid Image프로그래밍/Python 2020. 4. 20. 13:25
저번 시간에 Color로 blur된 아인슈타인을 출력해보았다. 이번 시간에는 high frequency image를 출력해 이 두 사진을 합성하는 hybrid Image를 출력해보겠다. 먼저 high frequency image를 만드는 함수이다. High Frequency Image 코드 간단하다. Image에 low frequency를 제거하면 high freqeuncy가 남는데 이를 이용한 것이다. 128을 더해주는 이유는 negative value에 대한 방지이다. 가능한 value의 범위의 mean 값을 더해주면 된다. 다음은 이 high frequency image를 출력하는 코드이다. 실행 코드 실행 결과 이렇게 high frequency만 남은 Image가 출력이 된다. 이제 Low fre..