본문 바로가기

분류 전체보기48

Airflow란? 멀티 클라우드 플랫폼을 개발할 때 필요한 툴 중 하나인 Airflow에 대해 알아봤다! Airflow 자체를 처음 접했던 거라,, 아주 기초적인 내용부터 다루고자 한다. 📌 Apache Airflow란? 초기 에어비앤비(Airfbnb) 엔지니어링 팀에서 개발한 오픈소스 워크플로우 관리 플랫폼 프로그래밍 방식으로 워크플로우를 작성, 예약 및 모니터링 즉, 복잡한 워크플로우를 프로그래밍 방식으로 작성해서 스케줄링하고, 모니터링할 수 있는 플랫폼 📌 Airflow Key Concept 1️⃣ DAG (Directed Acyclic Graph) 순차적으로 작업이 이루어지며, 순환 실행을 방지한다. 하나의 DAG 안에는 한 개 이상의 task가 있다. 2️⃣ Operator 작업을 정의하는데 사용한다. Opera.. 2023. 5. 3.
프로그래머스 단어변환 | JAVA 📌 알고리즘 선택 미로찾기랑 비슷한 원리로, 경로를 기억했다가 되돌아올 필요가 있기에 DFS로 시도했다. 📌 풀이 전반적인 풀이의 흐름은 다음과 같다. 1. 한글자만 다른 단어를 찾는다. 2. 해당 단어를 visited=true 처리한다. 3. cnt를 1 증가시키고, 해당 단어를 begin으로 설정하여 dfs 탐색을 해준다. 4. 모든 경우에 대해 탐색하기 위해 visited=false 처리한다. 5. begin과 target이 같은 경우에 answer=cnt를 리턴한다. 📌 코드 import java.util.*; class Solution { static boolean[] visited; static int answer = 0; public int solution(String begin, Strin.. 2023. 4. 27.
[SQL] CONCAT ▫️ LEFT ▫️ MIDDLE ▫️ RIGHT ▫️ GROUP BY ▫️ HAVING | 문자열 연결 | 전화번호에 하이픈(-) 삽입 | 그룹 지정 | 프로그래머스 조건에 맞는 사용자 정보 조회하기 📌 CONCAT / LEFT / MIDDLE / RIGHT CONCAT 함수는 문자열을 연결할 때 사용한다. 사용법은 매우 간단하다. CONCAT(문자열1, 문자열2, ... 문자열n) 위의 형식과 같이, CONCAT 함수 안에 연결하고 싶은 문자열을 쉼표로 나열해주면 된다. 문자열은 주로 컬럼이나, " " 와 같은 공백을 넣어서 활용할 수 있다. 혹은 LEFT, MIDDLE, RIGHT 함수와 함께 사용할 수 있다. LEFT, MIDDLE, RIGHT 함수는 문자열을 부분만 가져올 때 사용하는데, LEFT(문자열, n): 왼쪽을 기준으로 주어진 개수 n만큼 문자열을 가져온다. MIDDLE(문자열, p, n): 지정한 위치 p에서 주어진 개수 n만큼 문자열을 가져온다. RIGHT(문자열, n): 오른쪽을.. 2023. 4. 26.
[SQL] CASE | 조건에 따라 컬럼값 변경 출력 하기 | 프로그래머스 조건에 부합하는 중고거래 상태 조회하기 📌 CASE CASE 구문은 SELECT 절에서 조건에 따라 컬럼 값을 변경할 때 주로 사용한다. if.. else 절과 유사하다고 생각하면 이해하기 쉽다! CASE [해당 컬럼명] WHEN [원래값1] THEN [변경값1] WHEN [원래값2] THEN [변경값2] ... END as [변경 컬럼명] 위의 형식에 맞춰 사용할 수 있다. [ 사용 예시 | (프로그래머스) 조건에 부합하는 중고거래 상태 조회하기 ] SELECT USED_GOODS_BOARD.BOARD_ID, USED_GOODS_BOARD.WRITER_ID, USED_GOODS_BOARD.TITlE, USED_GOODS_BOARD.PRICE, CASE USED_GOODS_BOARD.STATUS WHEN 'SALE' THEN '판매중' WHE.. 2023. 4. 26.
백준 1806번 : 부분합 | JAVA 📌 알고리즘 선택 부분합 문제는 특별한 알고리즘을 활용하기보단, left 변수와 right 변수를 통해 범위를 설정하는 것이 핵심이라고 생각한다! 📌 풀이 이 문제를 풀 때 가장 유의해야 할 점은 바로,, "문제를 정확히 읽는 것" 이다. 부분합 S에 해당하는 것이 아닌 S 이상인 것의 최소 길이를 구하는 것이 문제인데,, 해당하는 것으로 읽어버려서 시간 낭비를 한 점이 굉장히 아쉬웠다. 다음부터는 문제를 꼼꼼하고 정확하게 읽도록 하자! 전반적인 풀이의 흐름은 다음과 같다. 1. int 형 배열에 주어진 수열을 입력받는다. 2. right 값을 증가시키면서 arr[right]에 접근하여 sum 값에 더해준다. 3. 만약 sum 값이 S값 보다 커진다면, 범위의 길이를 계산하여 최소길이에 해당한다면 기록해.. 2023. 4. 25.
백준 6549번 : 히스토그램에서 가장 큰 직사각형 | JAVA 📌 알고리즘 선택 어려웠던 이 문제 ,,, 다른 사람들의 여러 풀이 방식을 참고했다는 것을 미리 알린다. 이 문제는 분할정복이나 스택구조를 활용하여 풀 수 있다. 그 중에서도 나는 구간 내 가운데를 기준으로 분할하는 풀이 방식을 선택했다. 📌 풀이 가운데를 기준으로 분할하여 풀이하는 과정은 다음과 같다. 1. 가운데 위치를 구한다. 2. 가운데 위치를 기준으로 분할하여 왼쪽 구간의 넓이와 오른쪽 구간의 넓이를 구한다. 3. 왼쪽과 오른쪽 중 큰 넓이를 변수에 저장한다. 4. 변수에 저장된 넓이와 두 구간을 합친 구간의 가장 큰 넓이를 구해 두 개 중 가장 큰 넓이를 반환한다. 📌 코드 import java.io.BufferedReader; import java.io.IOException; import j.. 2023. 4. 9.