전체 글 135

[BOJ] 1874번: 스택 수열

■ 문제해결 처음 문제를 읽어보면서 풀이를 진행하는데 이해하기가 어려웠고, 구글링을 통해 해답을 보며 이해하였다. stack에 값이 --- [1] [1, 2] [1, 2, 3] [1, 2, 3, 4] --- 다음과 같이 push되게 된다. 다음 과정에서 data 즉 입력 받는 값이 stack 의 최상단의 값인 '4'와 같게 된다면 pop 시키고 '-' 값을 ans에 push하며 풀이된다. 문제를 이해하는데 어려움이 있었지만 push, pop을 이용한 간단한 알고리즘 문제였다. ■ 문제해답 import sys input = sys.stdin.readline n = int(input()) stack = [] ans = [] count = 1 result = True for i in range(n): data..

Algoritm/BOJ 2022.09.06

[BOJ] 9012번: 괄호

■ 문제해결 올바른 괄호 문자열을 VPS라고 부른다. VPS의 타당성을 확인할 check 함수를 별도로 구성하였고, stack 리스트에 vps 입력값의 괄호를 pop 시켜 ')' 값이 나오면 stack에 append 시키고, '(' 값이 나오면 stack에 존재하는 ')' 값을 pop 시킵니다. 과정 중에 stack의 값이 존재한다면 올바른 VPS가 아니므로 return False 시킵니다. 이 후 stack의 리스트에 '(' 값이 존재 한다면 VPS의 타당성을 만족시키지 않으므로 return False 시키고, stack의 리스트에 값이 존재하지 않는다면 VPS의 타당성을 만족시키므로 return True 시킵니다. ※ 리스트의 값이 존재하면 if 판정은 '참(True)'으로 내린다. 하지만 리스트가 ..

Algoritm/BOJ 2022.09.06

[BOJ] 9093번: 단어 뒤집기

■ 문제해설 먼저 문단의 내용들을 list 안에 list로 저장하고, 이 후 문단의 값들을 하나씩 .join 하여 값들을 list의 특성을 이용하여 거꾸로 뒤집는다. 입력이 다음과 같으며, 2 I am happy today We want to win the first prize 출력은 다음과 같다. --> sentence = list(map(list, input().split())) [['I'], ['a', 'm'], ['h', 'a', 'p', 'p', 'y'], ['t', 'o', 'd', 'a', 'y']] [['W', 'e'], ['w', 'a', 'n', 't'], ['t', 'o'], ['w', 'i', 'n'], ['t', 'h', 'e'], ['f', 'i', 'r', 's', 't'], ..

Algoritm/BOJ 2022.09.06

[BOJ] 10828번: 스택

■ 문제해설 각 기능별로 (push, pop, size, empty, top) 함수로 구현하였고, stack이 비어있는 경우에는 len(stack) == 0을 이용하여 조건문을 구성하였다. ■ 문제해답 import sys input = sys.stdin.readline n = int(input()) stack = [] def push(x): return stack.append(x) def pop(): if len(stack) == 0: return -1 else: return stack.pop() def size(): return len(stack) def empty(): if len(stack) == 0: return 1 else: return 0 def top(): if len(stack) == 0:..

Algoritm/BOJ 2022.09.06

[Airflow] Apache Airflow 란?

개요 - Apache Airflow에 대한 개념 설명 및 어떠한 분야에서 사용되어야 적합한지에 대한 이론 설명 ■ Apache Airflow 란? - Data Pipeline을 처리하기 위해 배치 태스크에 중심을 둔 Framework 이다. - 유연한 Python Framework를 사용해 쉽게 Data Pipeline을 구축할 수 있게 해 준다. - Data Process 과정에서 중요한 역할 을 수행하며 분산 시스템에서 발생하는 작업을 조율한다. - 직접적으로 Data 처리 작업을 수행하지는 않지만, Data 처리를 위한 다양한 구성 요소들을 조정한다. 1. Data Pipeline - 데이터 파이프라인은 여러 Task 또는 동작을 구성하여 원하는 결과를 얻는다. - 각 Task는 정해진 순서대로 진..

BigData/Airflow 2022.09.05

[Virtualization] Network 설정

■ 개요 - Nat Network 설정 - HostOnly Network 설정 - Bridge 설정 위 3가지 Network 설정을 진행하겠습니다. 1. Nat Network 1.1 Nat Network 설정 VirtualBox에 접속 후 위 '파일'을 클릭 이 후 환경설정을 선택합니다. 1.2 Network 설정 이 후 '네트워크'를 선택하고, 오른쪽 디스크 모양의 + 버튼을 클릭합니다. 그러면, 다음과 같이 NatNetwork가 추가 됩니다. 'NatNetwork' 정보를 보면 다음과 같이 설정되어 있는 것을 확인할 수 있습니다. 2. HostOnly Network 2.1 HostOnly Network 설정 '파일'을 클릭하고 '호스트 네트워크 관리자'를 선택합니다. 'cmd'로 접속해서 'ipcon..

[Virtualization] VirtualBox Install

■ 개요 - VirtualBox 설치 법에 대해 진행해 보겠습니다. 1. VirtualBox 파일 설치 먼저 VirtualBox 파일을 다운로드 받습니다. VirtualBox Install URL : https://www.virtualbox.org/ Oracle VM VirtualBox Welcome to VirtualBox.org! News Flash New July 19th, 2022VirtualBox 6.1.36 released! Oracle today released a 6.1 maintenance release which improves stability and fixes regressions. See the Changelog for details. New April 19th, 2022Virtu..

[kubernetes] namespace

■ namespace 란? - 클러스터를 여러개의 논리적인 단위로 나눠서 사용 - API가 하나이지만 목적에 맞춰 여러개로 분리 - namespace를 사용하지 않으면 자동으로 'default namespace' 로 동작 · namespace 조회 $ kubectl get namespace --- NAME STATUS AGE default Active 1d kube-node-lease Active 1d kube-public Active 1d kube-system Active 1d · 쿠버네티스 초기 namespace는 총 4개 다음과 같다. default 다른 namespace가 없는 object를 위한 기본 namespace kube-system 쿠버네티스 시스템에서 생성한 object를 위한 name..

DevOps/Kubernetes 2022.08.24

[Kubernetes] 쿠버네티스 아키텍처

■ Kubernetes Architecture Control Plane Component 1. kube-apiserver API Server는 쿠버네티스 API를 노출하는 쿠버네티스 Control Plane Component 수평으로 확장되도록 디자인 되어 더 많은 인스턴스를 배포해서 확장할 수 있음 여러 kube-apiserver 인스턴스를 실행하고, 인스턴스간의 트래픽을 균형있게 조절 가능 2. etcd 모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소로 사용되는 일관성, 고가용성 키-값 저장소 'key:value' 형식으로 node1, node2에 대한 정보를 저장 상태정보와 컨테이너가 동작중인 상태, 이미지 상태에 대한 정보를 저장 3. kube-scheduler node가 배정되지 않은 새로..

DevOps/Kubernetes 2022.08.23

[Kubernetes] 쿠버네티스란?

■ Kubernetes (K8s) 란? - 쿠버네티스는 컨테이너화 된 워크로드와 서비스를 관리하기 위한 '이식성'이 있고, '확장가능'한 Open Source Platform ※ 워크로드란? - 쿠버네티스에서 구동되어지는 애플리케이션 ■ Kubernetes 가 탄생하게 된 배경 1. Traditional Deployment - Dedi Server - 보시는 바와 같이 애플리케이션 물리 서버에서 실행 - 하나의 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없음, 따라서 리소스 할당에 문제가 발생 - 리소스가 충분히 활용되지 않는다는 점에서 확장 가능하지 않음 - 물리 서버를 많이 유지하기 위해서는 조직에게 많인 비용이 발생 2. Virtualized Deployment - Traditi..

DevOps/Kubernetes 2022.08.23