[keyword] 결합도 & 응집도(Coupling & Cohesion) 컴퓨터공학을 공부하던 대학생때 처음 듣고, 달달 외웠던 개념이다.결합도를 낮추고 응집도를 높여야해!문제를 풀기위해서 강제로 머릿속에 주입시켰던 개념.현업에서 개발을 하면서, 이 것은 암기가 아닌 그냥 자동으로 떠오르는 개념이 되었다. [결합도(Coupling)]결합도가 낮아야 하는 이유는 무엇일까?이때 기준은 모듈이다. 작업을 수행하는 최소단위.Input -> [ module ] -> Output특정 input에 대해서 원하는 output을 얻을 수 있는 최소단위.함수라고 생각하면 쉽다. 함수간에 서로가 서로를 바라보고 의존하는 경우를 우리는 결합도가 높다고 한다.이 경우에는 한 가지 작업을 수행할때, 두가지 함수가 필요하다.결국 ..
[CSS] CSS selector CSS Selector를 잘 알면 jQuery를 사용해서 DOM을 조작하는 것이 너무 쉽다.쉬우면 재미있고 재미있으면 오래기억 남으니까 CSS Selector를 공부를 하기로 했다. 공부를 하기 위해 찾은 사이트를 기록하려고 한다.http://flukeout.github.io/Level 1~32 까지 게임으로 진행할 수 있다. 1. plate2. bento3. #fancy4. plate apple5. #fancy pickle6. .small7. orange.small8. bento > orange.small9. bento, plate10. *11. plate *12. plate + apple13. bento ~ pickle14. plate > apple15. orange..
[Rule] 보이스카우트 규칙 "캠핑 장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라! 보이스카우트 규칙 (클린 코드, p50)" 누구나 한번쯤은 들어봤을 규칙이다.개발하다 보면, 예전에 내가 작성했던 코드와 만나거나 or 다른 사람이 예전에 작성해 놓은 코드를 만나게 된다. 그 코드를 보면서... 왜 내가 이렇게 짰지? or 왜 이걸 이렇게 짜셨지? 라는 생각이 들면그냥 넘어가지 말고 더 나은 코드로 수정하라는 규칙이다. 사람은 한번에 완벽하고 좋은 코드를 만들기 힘들다.그렇기 때문에 계속 반복해서 보면서 나은 코드를 만들어야 한다. 이 규칙을 통해서 우리는,예전에 코드를 작성할 때는 몰랐지만,나중에 알게된 좋은 개념을 코드에 적용해 볼 수 있다. 점점 더 나은 개발자가 되기 위해서 이 개념을 잊지말..
[BFS & DFS] tomato [BFS: Breath First Search] - 재귀함수(스택)깊이까지 들어가서 탐색하고 다시 돌아오는 알고리즘;백트래킹 알고리즘에 활용되는 개념이다.주로 스택을 이용한다. (재귀함수의 콜스택)최대 탐색 횟수를 구하는 경우, 기존 담긴 값과 이번에 담을 값을 비교해서 탐색을 계속할지 확인한다. [DFS: Depth First Search] - 큐순서대로 닿는 곳을 탐색하는 알고리즘;큐에 순서대로 저장해서 하나씩 빼면서 확인한다.계속 큐에 집어넣고, 하나씩 꺼내면서 큐가 빌때까지 계속 반복한다.큐에 담기는 순서대로 값이 증가하기 때문에 기존에 담긴 값을 확인할 필요가 없다. 값이 없는 경우에만 새롭게 담는다. // tomato BFS(Breath First Search..
[DataStructure] Queue? // Queue // enqueue, dequeue, isEmpty // generic template class #include using namespace std; template class Queue { private: T *queue; int size; int front, back; public: Queue(int size) { this->queue = new T[size]; this->size = size; this->front = this->back = 0; } void enqueue(T item) { int pos = this->back++ % size; this->queue[pos] = item; } T dequeue() { int pos = thi..
[Ubuntu] Linux terminal process without kill after logout AWS로 프로젝트를 업로드하여 실행했는데, 시간이 지나 ssh 세션이 종료될때마다 재시작을 해줘야하는 번거로움이 있었다. 그래서 세션이 지나고 터미널을 종료하더라도,서비스가 죽지 않게 하는 것을 stackoverflow에서 찾아 메모한다. $ [Command] & disown !!! 왜 그런지 이유는 모르겠지만, `& disown`으로 실행한 뒤, 바로 해당 ssh 연결을 끊어야 node server가 API 요청에 pendding 걸리지 않는다.1시간 정도 이것때문에 삽질했다.. 하..;; 그리고 AWS 서비스를 재부팅하면, mongoDB 데이터가 날아가므로 주의하자... 내 데이터 ㅠㅠ.. [출처]..
[DP] changeCoin? 예제: https://www.acmicpc.net/problem/2293 // 동전교환 // 동전 갯수, 목표금액 // 동전 종류들 // [만들고 싶은 금액 - 현재 동전의 값] => 가지수 // + // [만들고 싶은 금액] => 가지수 #include #include using namespace std; #define COIN_COUNT 100 #define SIZE 10001 int main() { int coin[COIN_COUNT]; int coinCount, target; cin >> coinCount >> target; for(int i=0; i> coin[i]; } int dp[SIZE]; memset(dp, 0, sizeof(dp)); dp[0]=1; for..
[Greedy] jewelryThief - priority_queue(heap) 예제: https://www.acmicpc.net/problem/1202 // 보석상 도둑 그리디 알고리즘 // 보석수, 가방수 // 한개의 가방에는 한개의 보석만 넣을 수 있다. // 보석 무게, 보석 값어치 // 가방들마다 넣을 수 있는 무게 // algorithm > sort // vector, queue // pair, priority_queue(heap) #include #include #include #include using namespace std; #define SIZE 300000 int main() { int jewelryCount, bagCount; cin >> jewelryCount >> bagCoun..
[SQL] JOIN? // JOIN // INNER JOIN // LEFT OUTER JOIN // RIGHT OUTER JOIN // FULL OUTER JOIN SELECT * FROM a INNER JOIN b WHERE a.b_id = b.b_id; SELECT * FROM a LEFT OUTER JOIN b where a.b_id = b.b_id; SELECT * FROM a RIGHT OUTER JOIN b WHERE a.b_id = b.b_id; SELECT * FROM a FULL OUTER JOIN b WHERE a.b_id = b.b_id;
[SQL] where & orderBy & limit // 선적되지 않은 주문 리스트에서, 주문 일자가 최근 순으로 5개를 검색하라. // limit offset, count Table: orders +-----------------+--------------+ | Field | Type | +-----------------+--------------+ | orderNumber (PK)| int | | orderDate | date | | isShipped | boolean | +-----------------+--------------+ MYSQL: SELECT * FROM orders WHERE isShipped = false ORDER BY orderDate LIMIT 5; ORACLE: SELEC..
[Math] changeProposition? **진법을 10진법으로 변환한다. 10 ~ 36 진법까지 가능하며, 알파벳 표현은 Z 까지다. 예제: https://www.acmicpc.net/problem/2745 // 진법변환 // 숫자를 나타내는 문자가 오고, 그 다음에 진법이 온다. // 10 진법으로 숫자를 변경. // input: ZZZZZ 36 // output: 60466175 #include #include using namespace std; int toNumber(char n) { char base; if(n >= '0' && n = 'A' && n > number >> proposition; int result = 0; for(int i=0; i> proposition; stack r..
[Graph] Floyd Warshall? 최단 경로 계산할때 제일 간단한 알고리즘.어려워 보이지만 쉽다.최대값, 최소값 판단 기준을 커스터마이징 해야해서 조건을 잘 적고 하나씩 적용해야된다. 예제: https://www.acmicpc.net/problem/11404 // floyd warshall // memset(arr, value, sizeof(arr) - // string s.front() s.back() // time complexity: O(N^3) // space complexity: O(N^2) // 최대값 // 최소값; 비어있는 경우 !0 일때 삽입 // 제자리 못올때 i == j continue #include #include using namespace std; #define SIZE..
[Sort] 수열에서 자기 위치에 위치하는 원소가 있는지 확인? // 수열 s 에서 s_i < N_x < s_j 를 만족하는지 확인하라 // i, x, j 는 수열의 index 이다. // i < x < j: index x 보다 작은 숫자를 i로 지칭하고, 큰 숫자를 j로 지칭한다. // 정리하면 모든 s_i 는 N 보다 작고, 모든 s_j 는 N 보다 큰 숫자가 존재하는지 찾아라. // algorithm.sort // ASC: default // DESC: #include ; greater(); #include #include using namespace std; #define SIZE 1000000 int main() { int cnt; int origin[SIZE], sorted[SIZE]; cin..
[Cache] fibonacci? 피보나치 함수는 일반적으로 시간복잡도가 O(2^N) 이다. 정확하게 하면 O(1.6^N) 이다. 이렇게 지수승 시간복잡도는 매우 큰 값이므로 N이 커지면 구하기 어렵다. 그래서 fibonacci 함수를 만들때 시간복잡도를 선형으로 줄이기 위해 cache로 기존 호출했던 함수 값을 재사용해서 O(N)을 사용하도록 한다. // fibonacci // cache 사용의 중요성을 알게 해주는 예제 // cache를 사용하지 않는다면, fibonacci 의 시간복잡도는 O(2^N) 이다. // 정확하게는 O(1.6^N) 이다. 왜냐하면, 양쪽이 동일한 트리모양이 아니라 한쪽만 뻗어나가는 트리이므로. // cache를 사용하면 O(N)으로 해결할 수 있다. // this-> poi..
[DataStructure] Stack? Stack 직접 구현해보기.- push, pop, top- new / delete- Constructor / Destructor // Stack 직접 구현해보기 // Class, Generic Class // Array 동적할당 new / free // Constructor / Destructor #include using namespace std; #define SIZE 1000000 template class Stack { private: int pos = 0; T *stack; public: Stack(int size) { stack = new T[size]; } ~Stack(int size) { delete stack; } T top() { if(isEmp..
[Recursive] numberPower? n의 x 승을 구하는 가장 빠른 방법. // n^x 구하기 // Time: O(logN) - N/2 줄여나가면서 갯수 반씩 감소하므로 // Space: O(logN) - 스택 깊이 #include using namespace std; int numberPower(int n, int x) { // n^0 == 1 if(x == 0) return 1; // n^1 == n if(x == 1) return n; // n^3 == n * n^2 if(x % 2 == 1) return n * numberPower(n*n, x/2); // n^4 == n^2 * n^2 return numberPower(n*n, x/2); } int main() { int n, x; ci..
- Total
- Today
- Yesterday
- 어떻게 능력을 보여줄 것인가?
- 테슬라 리퍼럴 코드 혜택
- 팔로워 수 세기
- 테슬라 리퍼럴 코드
- 레퍼럴
- 테슬라 레퍼럴 코드 확인
- COUNT
- 메디파크 내과 전문의 의학박사 김영수
- 인스타그램
- 개리마커스
- 책그림
- 테슬라 크레딧 사용
- 클루지
- 연애학개론
- 테슬라 레퍼럴
- 테슬라 레퍼럴 적용 확인
- 김달
- Bot
- Kluge
- 할인
- 테슬라 추천
- 모델y
- 테슬라 리퍼럴 코드 생성
- follower
- 모델 Y 레퍼럴
- 테슬라
- 유투브
- wlw
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |