목록전체 글 (19)
김선우의 머릿속
함수 파라미터의 타입 명시 func multiply(a, b int) result int{ return a * b // a,b 모두 int 타입으로 인식 } 둘 이상의 return 지원 package main import "fmt" import "strings" func doSomething(name string) (length int, upper string) { length = len(name) upper = strings.ToUpper(name) return length, upper } func main(){ length, upper := doSomething("kim") fmt.Println(length, upper) } // 3 KIM Naked Return_ Go는 return 타입을 꼭 명시..
Linux 서버 생성 및 CI 환경 구축 Windows에서 리눅스 개발 환경을 사용하기 위해 virtual box로 실행한 Ubuntu OS (20.04 LTS)에 SSH 접속을 목표로 한다. SSH 접속은 PuTTY를 사용한다. 목표 가상 머신 소프트웨어, OS, SSH를 위한 프로그램 설치 (Virtual box, Ubuntu, openssh-server, putty) 네트워크 환경 설정 (호스트, 게스트 IP주소를 확인) root 계정 외에 ssh 접속을 위한 계정 설정 (계정 추가 및 권한 설정) CI 환경을 위한 쉘스크립트 작성 Virtual Box 설치, Ubuntu OS를 설치, PuTTY 설치 과정은 자료가 많기 때문에 생략하기로 한다. 서버 생성 및 ssh 환경 설정 과정 가상 머신에 원..
C++에서 입력, 출력 속도 단축 ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 백준 1463번 1로 만들기 DP 풀 때? 점화식 찾는다. (초기조건 설정 포함) 찾는 범위와 저장될 조건 찾음 #include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; int cnt=0; cin >> N; int dp[1000001]= {0}; dp[1]=0; for(int i=2; i
Longest Increasing Subsequence (LIS) 값이 증가하는 순으로 선택할 수 있는 가장 긴 부분 배열을 고르는 문제 n^2의 방법 배열의 각 인덱스마다 가장 길게 만들 수 있는 부분 배열의 길이를 저장한다. 배열의 각 인덱스마다 이전 인덱스의 값(value)을 확인한다. 이전 인덱스들 중 가장 긴 부분 배열을 만드는 인덱스의 부분 배열 길이를 가져와서 1을 더해서 저장한다. nlogn의 방법 같은 부분배열 길이를 가졌을 때, 배열의 인덱스가 커질수록 배열의 값(value)이 작아진다. → 모든 인덱스의 len값을 기억하는게 아니라 가장 작은 값의 len만 기억하는 것이 효율적 성질 같은 len값을 가지면 인덱스 값이 커질수록 value값은 커진다. len 값이 커질수록 인덱스 값이 ..
20.07.01 Created: Jun 30, 2020 7:20 PM Tag: DFS BFS GCD LCM 알고리즘 설계 예증 패턴 매칭 단순화와 일반화 초기 사례로부터의 확장 자료구조 브레인스토밍 DFS vs BFS (without DP) DFS(깊이 우선 탐색)를 사용하면 좋은 경우 모든 경로를 탐색하고 결과를 확인해야 하는 경우 문자열 등을 탐색할 때 "사전 순서로 앞에 오는 것"처럼 앞부터 검색해서 찾는 것이 빠른 경우 BFS(너비 우선 탐색)를 사용하면 좋은 경우 시작 지점에서 가장 가까운 것을 구하고 싶은 경우 탐색 범위 자체는 넓지만 어느 정도 근처에 구하고 싶은 해가 존재하는 것을 알고 있는 경우 탐색 범위가 굉장히 넓으며 깊이 우선 탐색을 사용할 때는 스택이 대량으로 사용되는 경우 최대공..
Finite Model의 한계 변수의 값이 언제, 어디서 정의되고 변화되는지 알 수 없다 -> DFG 사용 DFG (Data Flow Graph) Definition-Use pair (DU pair) Definition : 변수의 값이 정해지는 곳(선언, 초기화, 파라미터로부터 전달 등) Use : 변수의 값이 사용되는 곳 (분기문, 파라미터에 전달, 리턴 등) 변수의 Definition과 Use의 위치를 파악해서 묶은 것을 DU pair라고 한다. definition-use path는 definition과 use 사이의 구간 Definition-clear definition이 중첩되는 경우, 이전 definition은 kill된다. definition-clear path는 definition과 clea..
Model Artifact를 간단하게 표현한 것. 프로그램 실행에 관련된 중요한 것만 남겨두고 나머지는 표현하지 않음. ex) FSM(Finite State Machine), CFG(Control Flow graph), call graph Control Flow graph Intraprocedural Node : basic block(하나의 input이 실행되서 하나의 output이 나오는 프로그램 흐름) Edge : 프로그램 실행이 하나의 node에서 다른 node로 이동되는 것을 표현 coverage, static analysis, cyclometic complex 계산에 사용 Unit level에서 사용 ->코드가 길어지거나 구조가 복잡해질수록 model을 만드는것이 불가능하므로 Unit level..
Software Development Life Cycle (SDLC) Development process를 수정하는 기준? Quality Quality process 의 특징 - Visibility - Anticipation of activities - Feedback 퀄리티는 개발 후에 합쳐지는게 아니라, 개발 프로세스와 맞물려서 계속해서 진행해야 한다. 테스팅은 phase 개념이 아니라, lifestyle 개념 흔히 개발 프로세스에서 말하는 testing은 test execution을 뜻함. 기본적으로 test의 시작은 디자인에서부터 시작된다. Quality process 품질에 대한 평가, 도구 사용을 위한 교육, 프로젝트 스케쥴 조절 등 품질과 관련된 활동들 적절한 V&V 툴을 골라서 사용한다. ..