본문 바로가기
반응형

분류 전체보기136

[백준] 18405번: 경쟁적 전염 Python (DFS, BFS) | LIM 이 문제는 BFS를 이용하여 풀었다. 생각보다 이 문제는 간단하게 풀 수 있었다. 먼저, 바이러스가 존재하는 위치와 그 위치에 바이러스 값을 저장했다. 또한, 바이러스 숫자가 작을수록 우선수위를 갖기 때문에 바이러스 숫자가 작은 순서대로 sorting 해주었다. popleft()를 통해 앞에 있는 것(바이러스 숫자가 작은것)부터 뽑아내며 상하좌우로 퍼지게 하였다. 퍼지게 한 후 바이러스가 전염된 부분의 바이러스 값과 인덱스를 기존 virusIndex에다가 뒤로 저장하였다. 맨 처음에 순서대로 sorting 해주었기 때문에 추후에 저장되는 바이러스 값은 자동으로 정렬이 되어 있다. 기존에 있던 바이러스가 모두 popleft()를 통해 사라지고 그 바이러스를 통해 전염된 바이러스와 인덱스만 남게 되면 시간을.. 2021. 8. 31.
[백준] 14502번: 연구소 Python (DFS, BFS) | LIM DFS와 BFS에 관련하여 설명은 너무 많기에 내가 기억하고 싶은 것만 정리하고자 한다. DFS - Depth-First Search(깊이 우선 탐색) 즉, 깊은 부분부터 탐색하겠다는 이야기이다. 깊은 부분부터 탐색한다는 말이 사실 잘 이해가 되지 않기에 그냥 DFS는 스택을 사용한다로 외웠다. DFS는 스택을 이용하는 알고리즘이기 때문에 실제 구현은 재귀함수를 이용했을 때 매우 간결하게 구현할 수 있다. 스택은 박스 쌓기에 비유할 수 있다. 박스를 쌓다가 아래에 있는 박스를 치우기 위해서는 위에 박스부터 먼저 치워야 한다. 이러한 구조를 선입후출, 후입선출 구조라고 한다. 그냥 먼저 들어온게 나중에 나간다고 생각하면 쉽다. 왜냐하면 쌓기 때문이다. DFS가 동작하는 과정은 다음과 같다. 1. 탐색 시작.. 2021. 8. 31.
[Airflow] Airflow 기본 개념 📌 Airflow란? Python 코드로 워크플로우(workflow)를 작성하고, 스케쥴링, 모니터링 하는 하나의 플랫폼이다.. Airflow를 통해서 데이터엔지니어링의 ETL(Extract, Transform, Load) 작업을 자동화하고, DAG(Directed Acyclic Graph)의 형태의 워크플로우 작성이 가능하다. 이를 통해 더 정교한 dependcy를 가진 파이프라인을 설정할 수 있게 된다. 간략하게 Airflow가 무엇인지 살펴보았고, Airflow를 구성하고 있는 구성요소들에 대해 알아보도록 한다. Scheduler - 모든 DAG와 Task에 대하여 모니터링 및 관리하고 실행해야 할 Task를 스케줄로 관리(각 task id는 고유하다) DAG - Directed Acyclic Gr.. 2021. 8. 14.
http vs https 이전에는 많은 사이트들이 http를 사용했으나, 요즘 공신력 있거나 보안이 중요한 사이트들은 https를 사용하는 것을 볼 수 있다. 기관으로부터 검증된 사이트만 주소에 https 사용이 허가된다. 그냥 http를 사용하는 사이트의 경우 이제 주소창에 이처럼 '안전하지 않다'와 같은 표시가 뜨게 된다. http와 https 의 차이점을 알아보기 전, http는 무엇을 뜻하는 걸까? HTTP - Hypertext Transfer Protocol http는 한마디로 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜(통신 규약)이라고 설명할 수 있습니다. 즉, hypertext인 html을 전송하기 위한 통신규약을 의미한다. 웹 서핑을 할 때 서버에서 우리 브라우저로 데이터를 전송해 .. 2021. 6. 27.
XML vs JSON vs YAML XML, JSON, YAML 은 모두 데이터를 표현하는 형식입니다. 하지만 형태와 문법이 조금씩 다르고 쓰임새가 다르기 때문에 차이점을 정리해보고자 한다. 각각의 쓰임새가 모두 다르기 때문에 어느 하나만을 써야 한다고 말할 수 없고 상황에 맞는 것을 쓰면 된다. 1. XML(Extensible Markup Language) XML의 경우 데이터를 표현하기 위하여 많이 사용되어 온 방식으로 태그로 표현되며 이는 HTML과 흡사한 구조를 가지고 있다. 그러나 XML은 HTML처럼 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달할 목적으로만 만들어졌습니다. XML은 트리계층 구조를 가지고 있고 루트 요소부터 시작해 여러 개의 자식을 계층적으로 포함하게 됩니다. 홍길동 100 Software Math 이.. 2021. 3. 15.
동적계획법(DP) 동적계획법은 큰 문제를 작은 문제로 나누어 푸는 문제를 일컫습니다. 동적계획법이 어떤 부분에서 동적으로 프로그래밍이 이루어진다는 말은 아닙니다. 동적계획법은 입력 크기가 작은 부분 문제들을 모두 해결한 후에 그 해들을 이용하여 보다 큰 크기의 부분 문제들을 해결하여, 최종적으로 원래 주어진 입력의 문제를 해결하는 것입니다. 동적계획법의 조건은 이러합니다. 1. 작은 문제가 반복하여 일어나는 경우(중복이 있는 경우) 2. 같은 문제는 구할 때마다 정답이 같은 경우 이러한 위와 같은 조건을 만족하는 경우에만 동적 프로그래밍을 사용할 수 있습니다. 작은 문제의 결과 값이 항상 같다는 점을 이용해서 큰 문제를 해결하는 방법입니다. 이와 같은 특성을 이용하여 한 번 계산한 작은 문제를 저장해놓고 다시 사용을 할 .. 2021. 2. 9.
반응형