코딩
-
[TEST] Frog Possible DistanceDEV/🤦 ALGORITHM 2022. 2. 16. 01:22
What is the longest distance that they can possibly between each other? 이번에 코딩테스트로 만났던 문제를 소개하고자 한다.There are N blocks, numbered from 0 to N-1, arranged in a row.A couple of frogs were sitting together on one block when they had a terrible quareel.Now they want to jump away from one another so that the distance between them will be as large as possible.The distance between blocks numbered J and ..
-
[BFS] 너비우선탐색 (Breath-First Search)DEV/🤦 ALGORITHM 2022. 2. 10. 17:02
BFS란? by QueueBreath-First Search의 약자로 너비우선탐색을 의미한다.시작노드에서 가장 가까운 노드부터 탐색하는 것을 말한다.이를 구현하기 위해선 큐의 자료구조가 사용된다. 전제조건은 노드 숫자가 가장 낮은 노드부터 시작한다고 생각하자. 1. 시작 노드 : 1 2. 1을 꺼내서 방문하지 않은 노드 2,3,8을 큐에 넣고 방문처리를 한다. 3. 이제 2를 꺼내서 방문처리 후, 1과 7 중 방문하지 않는 7을 넣고 방문처리한다. 4. 3을 꺼내서 방문처리 후, 3과 인접한 노드 1, 4, 5 중 방문하지 않는 4 5를 큐에 넣는다. 5. 8을 꺼내서 방문처리 후, 8과 인접한 노드가 없으므로 큐에 넣지 않는다. 6. 7을 꺼내서 방문처리 후, 7과 인접한 노드 2,8,6 중 방문하지..
-
[DFS] 깊이탐색알고리즘(Depth-First Search)DEV/🤦 ALGORITHM 2022. 2. 10. 16:09
DFS 란Depth First Search 약자로 깊이 탐색 알고리즘을 말한다.말그대로 깊이 있는 것부터 탐색을 한다는 것이다. 이를 구현하기 위해선 스택이나 재귀함수를 이용한다. 전제조건은 노드를 방문하는 기준은 번호가 낮은 노드부터 방문한다고 하자.우선 스택개념을 사용해서 DFS를 구현하자1. 시작노드 : 1 2. 1 방문 후 인접한 2, 3, 8 중 가장 가장 낮은 숫자를 스택에 넣는다. 3. 2와 인접한 노드 중 방문하지 않은 7을 스택에 넣는다.4. 7와 인접한 6과 8 중 가장 작은 6이 스택에 넣는다. 5. 이제 6에서 더이상 들어갈 수 없기에 6을 꺼낸다.6. 7와 인접한 6과 8 중 방문하지않은 8을 스택에 넣는다. (방문한다) 7. 이제 8에서 더이상 들어갈 수 없기에 8을 꺼낸다.8..
-
[DFS / BFS] 스택자료구조, 큐자료구조, 재귀함수DEV/🤦 ALGORITHM 2022. 2. 8. 01:11
그래프 탐색 알고리즘에 있어 대표적인 알고리즘 DFS와 BFS를 알아보기 전에 선행되어야 할 개념이 있다.바로 스택(stack)자료구조와 큐(Queue)자료구조가 그것이다. Stack 자료구조마치 책을 쌓아 놓고 위에서부터 꺼내는 방식의 알고리즘이라고 생각하면 쉽다.FILO 즉, 선입후출의 방식인 것이다. 예를 들어 삽입을 5 - 2 - 7 - 삭제 - 1 - 4 삭제의 과정이 있다면 stack을 출력하면, 5 2 1 만 밑에서부터 남게 될 것이다. 이를 파이썬 코드로 표현하자면 append와 pop으로 구현할 수 있다. stack = [] stack.append(5)stack.append(2)stack.append(3)stack.append(7)stack.pop()stack.append(1)st..
-
[Docker] 도커기초DEV/🔫 PROJECT MANAGEMENT 2022. 1. 31. 20:20
도커를 쓰는 이유 하나의 컴퓨터에 가상으로 컴퓨터를 만들고 그 위에 운영체계를 만들고 그 위에 웹서버, 데이터베이스를 각각 만들 수 있음 한대의 컴퓨터 안에서 각각의 앱을 실행시키는 것이다. 즉, 격리된 환경에서 각각의 앱이 실행되는데, 격리된 실행환경을 컨테이너라고 정의함. 이러한 격리된 환경을 제공하는 도커가 편의성이 높다고 하는데 왜그런걸까? 우선 도커를 사용하기 위한 기본적인 이해를 살펴보자. 도커를 사용하기 위한 이해들 appstore = docker hub program = image process = container 프로그램이 여러가지 프로세스를 가지듯, 이미지가 여러가지 컨테이너를 가질 수 있다. docker docs CLI Reference - Docker CLI (Command Lin..
-
[git] gitignore을 했는데 왜 안지워질까DEV/🔫 PROJECT MANAGEMENT 2022. 1. 5. 15:23
.git ignore 파일사용 github에 프로젝트를 업로드 하고싶은데 보안상 중요한 파일이나 폴더를 .gitignore 파일을 사용한다. 그런데 이미 repository에 있는 .gitignore에 추가하고자 할때 추가적인 조치가 필요하다. 이미 올라와있는 파일은 현재 tracking 되고 있기 때문에 이 tracking을 제거해줘야하는 번거로움이 있다. Tracking 제거 원초적인 방법은 각 앱에 있는 pycache에 들어가서 캐시파일을 삭제하는 방법이 있지만 명령어 몇줄로 할 수 있는 방법이 있다. $ git rm -r --cached . $ git add . $ git commit -m 'remove ignored file' $ git push {remote} {branch} .gitignor..
-
🧼 클린코드란?DEV/🔫 PROJECT MANAGEMENT 2021. 12. 3. 23:19
왜 클린코드가 중요할까? 좋은 코드는 읽기만 해도 이해가 되는 코드다. 6개월 후에 코드를 봐도 코드만 봐도 이해가 될 수 있는 코드가 그것이다. 검색이 가능한 이름을 써라 코딩을 하다가 보면 램덤하게 값을 추출할 때가 있음 해당 숫자를 변수처리하는 것이 좋음 setInterval(eatKimchi, 86400) ❌ SECONDS_IN_A_DAY = 86400 const setInterval(eatkimchi, SECONDS_IN_A_DAY) ✅ 그 숫자가 무엇을 의미하는지 모르기 때문이다. 함수명은 반드시 동사로 쓰자 유저데이터는 함수명이 좋은 함수명이 아님 function userData(){ //... } const data = userData(); ❌ 유저 데이터 불러오기가 좋은 이름이다. fun..
-
[2021.11 회고] WECODE 부트캠프마치고 나서 나에게DEV/🔩 RETROSPECT 2021. 11. 11. 03:48
8월부터 시작된 WECODE Bootcamp가 10월말을 끝으로 수료하게 되었다. 부트캠프가 시작되기전 2개월간의 사전스터디모임, 2주 Sprint기간으로 진행된 협업 1차프로젝트와 2차 프로젝트를 마치고, 1개월간 진행되었던 스타트업 1개월 기업협업프로젝트까지 머릿속에 코딩에 대한 고민으로 가득찼던 5개월이었다. 뜨거운 여름날, 시작되었던 프로 개발자가 되기 위했던 그동안의 시간과 나의 고민들을 정리하려고 한다. 뼈속까지 문과였던 내가 개발을 시작한 계기 🦴 내가 개발을 시작한 계기를 말하기 전에 나라는 사람은 어떤 사람인지 말해보고싶다. 대학생활, 학과 봉사단회장, 입시논술강사경험을 한 나를 보았을때, 나는 분명 목표지향적인 사람이다. 분명한 목표가 세워지면 추가해야하는 일을 만들어서 하거나 내 방식..