프로그래밍
이더리움 프라이빗 네트워크 만들고 MetaMask로 송금하기
사전 설치 세팅 Cholocatey 설치 https://chocolatey.org/install 위 사이트 들어가서 다음 코드 복사 Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) PowerShell 관리자 권한으로 실행한 후 코드 붙여 넣기 기타 프로그램 설치 git, golan..
[코드잇] 다양한 프로그래밍 인강 추천
개발 공부에 푹 빠져있을 때 다양한 분야의 프로그래밍에 대해 알고 싶어서 코드잇을 수강한 적이 있다 코드잇에는 다양한 강의가 있다 웹, 데이터베이스, 서버, 인공지능, 자동화, 깃 등등 무제한 수강 멤버십이기 때문에, 결제 한 번으로 코드 잇의 전체 강의를 수강할 수 있어서 나는 지난 100일 동안 HTML, CSS, Javascript, React, 데이터 사이언스, 머신러닝, 딥러닝, Django SQL, Git, 알고리즘, 자료구조.. 등등 많은 강의를 들었다 100일 동안 무려 총 2350개의 강의 들었다;; 강의 하나의 길이는 대략 5분~10분 정도 되므로 가볍게 들을 수 있는 장점이 있다 그리고 강의를 들으면서 코드를 직접 작성하면서 테스트할 수 있는 환경도 제공해 준다 또한 커뮤니티를 통해 ..
순열, 조합, 중복순열, 중복조합을 만드는 방법
순열, 조합, 중복순열, 중복조합을 만들 수 있는 여러가지 방법을 설명하겠다 마지막에는 한가지 방법으로 순열, 조합, 중복순열, 중복조합을 모두 만들 수 있는 방법을 알려주겠다 사용할 배열에는 1 2 3이 저장되어 있는 상태이다 이 배열을 이용하여 3개 중에서 2개를 뽑는 순열, 조합, 중복순열, 중복조합을 생성해보겠다 순열을 만드는 방법 1. 반복을 이용한 순열 가장 쉽게 만들 수 있는 순열이다 2~3개를 뽑는 경우에는 간단하게 사용할 수 있지만 뽑는 수가 많아지면 코드가 더러워(?)진다 static int[] arr = {1, 2, 3}; public static void per() { for (int i = 0; i < 3; i++) { for (int j = 0; j n) 함수를 종료시킨다 sta..
위상 정렬을 구하는 두 가지 방법
위상 정렬이란 다음과 같은 그래프가 있다 각 노드는 해야할 작업이며 작업은 이전 작업이 끝나야 시작할 수 있다 예를 들어 3번 작업을 하기 위해서는 2번 작업을 먼저 해야하고 2번 작업을 하기 위해서는 1번 작업을 먼저해야한다 그러므로 작업순서는 1 2 3이 된다 그러면 다음과 같은 경우를 보자 3번이나 5번 작업을 하기 위해서는 2번 작업을 먼저 해야하고 2번 작업을 하기 위해서는 1번과 4번 작업을 해야한다 그러므로 작업 순서는 1 4 2 3 5 or 4 1 2 3 5 or 1 4 2 5 3 or 4 1 2 5 3 이 될 수 있다 이처럼 작업 순서가 있는 경우 작업 순서를 구하는 것을 위상 정렬이라 한다 위상 정렬하는 방법 위상 정렬을 구하는 방법에는 두 가지가 있다 진입 차수가 0인 노드를 지우면서..
스택 - 후위표기식
계산기 문자열로 된 계산식이 주어질 때, 스택을 이용하여 계산식의 값을 계산할 수 있다 중위 표기법의 수식을 스택을 이용하여 후위 표기법으로 바꾼다 후위 표기법의 수식을 스택을 이용하여 계산한다 중위 표기법의 수식을 후위 표기법으로 변환하는 방법 수식을 하나씩 읽는다 수식이 피연산자이면 출력한다 수식이 연산자이면 스택에 push한다 연산자의 우선순위를 따진다 더이상 읽을 수식이 없으면 스택에 있는 연산자를 모두 pop한다 변환 방법의 예 1. 덧셈과 뺄셈의 경우 연산자는 스택에 push, 피연산자는 출력하기 스택에 사칙연산 우선순위가 동등한 연산이 있을 경우 해당 연산을 pop한 후 push하기 중위 표기식이 3+4+5 인 경우의 예 3은 피연산자이므로 출력한다 +는 연산자이므로 push한다 4는 피연산..
스택 - 괄호검사, DFS
스택의 구현 스택을 구현하기 위해서 필요한 자료구조 - 자료를 선형으로 저장할 저장소. 배열을 이용하여 스택 구현이 가능하다 스택의 연산 삽입(push) - 저장소에 자료를 저장한다 삭제(pop) - 저장소에서 자료를 꺼낸다 isEmpty - 스택이 공백인지 아닌지를 확인한다 peek - 스택이 top에 있는 item을 반환한다 static int st[] = new int [10]; int top = -1; // 스택에 마지막 삽입된 원소의 위치를 가리킴 st[++top] = 1; // 단순하게 구현한push st[top--] // 단순하게 구현한 pop // 간단하게 push 구현 void push(int x) { if (++top > st.length) { // overflow } else { st..
다차원 배열의 clone
배열의 복사 배열을 복사할 때는 clone을 이용한다 int[] a = {1,2,3}; int[] b = a.clone(); 복사된 배열을 출력해보면 배열의 요소들이 잘 복사된 것을 확인할 수 있다 System.out.println("a 배열"); for (int i : a) { System.out.print(i); } System.out.println("\n"); System.out.println("b 배열"); for (int i : b) { System.out.print(i); } 출력결과 a 배열 123 b 배열 123 서로 참조하는 대상이 다른 것도 확인할 수 있다 System.out.println("a 배열의 주소"); System.out.print(a); System.out.println("..
printf + String.format (%%%을 보고 당황했다면..)
%%% 다음과 같이 해괴망측한 코드가 있다 %가 무려 세번이나 쓰였다 int n = 2; int r = 1; int x = 3; System.out.printf(String.format("%%2d | %%%dd\n", n), r, x); 다음과 같은 이상한 코드는 format에 의해 1. %% → %으로 바뀌고 System.out.printf(String.format("%2d | %%dd\n", n), r, x); 2. %d자리에 n이 들어가게 된다 System.out.printf("%2d | %2d\n", r, x); 최종적으로 다음이 출력된다 (%2d는 2자리 보다 작으면 공백을 추가하여 출력이 됨을 의미) 1 | 3 %%%을 사용하면 공백을 변수로 조절할 수 있게된다
Django에 https 설정하기 - sslserver
sslserver를 설치한다 pip install django-sslserver 인증서를 발급한다 openssl genrsa 2048 > django.key openssl req -new -x509 -nodes -sha256 -days 365 -key django.key > django.crt 설치된 앱에 sslserver를 추가한다 인증서를 이용하여 서버를 실행시키면 된다 python manage.py runsslserver --certificate django.crt --key django.key 0:8000 다만 공인된 인증서가 아닌 개인이 발급한 인증서 이므로 도메인에 접속하면 경고를 보낸다 어차피 본인이 만든 사이트니까 그냥 무시하고 들어가주면 된다
함수를 꾸며주는 데코레이터
데코레이터 여기 "hello"를 출력하는 hello함수가 있다 이 함수를 꾸며줄 수 있는 함수를 만들어 주겠다 original은 다른 함수를 받는 파라미터이다 wrapper는 함수를 꾸며줄 새로운 함수로 파라미터로 받은 함수를 꾸며줄 수 있다 현재 original로 받은 함수 앞 뒤로 "start", "end"를 print 해주었다 새로 만든 함수를 return 하면 된다 데코레이터 함수를 실행한 결과이다 이렇게 하면 좀 더 깔끔하게 나타낼 수 있다 @을 이용한 데코레이터 이번에는 데코레이터 함수를 먼저 작성하고 @을 이용하여 데코레이터를 해줄 수 있다 아래처럼 함수를 호출하면 위와 동일한 결과가 호출된다