Data Engineering
-
BFS, DFSData Engineering/알고리즘 - Python 2021. 6. 29. 11:26
완전 탐색 기법 중에는 BFS/DFS 알고리즘이 있다. 코딩 테스트 문제에서 자주 만나게 되는 알고리즘 카테고리이다. 그렇기 때문에 문제를 풀기 전에 개념을 세우는 것이 가장 중요하다. 개념을 공부하기 전에 그래프/트리, 스택/큐 자료구조에 대해 알고 가자. 📍그래프란? : 정점(Node)와 정점을 연결하는 간선(Edge)로 이루어진 자료구조 : 순환 싸이클이 있을 수도 있고, 없을 수도 있다. ◾정점: A, B, C, D, E ◾간선: 정점을 이어주는 선(왼쪽의 경우 6개의 간선으로 이루어짐) 📍트리란? : 순환 싸이클이 없는 그래프를 의미한다. 📍스택이란? : 데이터를 기록하는 구조이다. → LIFO(Last Input First Out) → push: 가장 먼저 입력된 데이터가 가장 밑에 쌓인다. ..
-
[프로그래머스 MySQL,Oracle] - 이름에 el이 들어가는 동물 찾기Data Engineering/MySQL & Oracle 2021. 6. 28. 20:44
[프로그래머스 String - 이름에 el이 들어가는 동물 찾기] MySQL *헷갈린 이유: "개의 아이디와 이름" 조건을 생각하지 못했다. → 테이블의 ANIMAL_TYPE에는 Dog, Cat이 존재함을 고려해줘야 한다. SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE='Dog' ORDER BY NAME Oracle → 오라클에서는 대소문를 구분하지 못한다. 그러므로 NAME을 대문자 또는 소문자로 바꿔서 비교해줘야 한다. SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE LOWER(NAME) LIKE '%el%' AND ANIMAL_TYPE='Dog' -- WHERE UPPER(N..
-
[프로그래머스 MySQL,Oracle] - 루시와 엘라 찾기Data Engineering/MySQL & Oracle 2021. 6. 28. 19:47
프로그래머스 코딩테스트 연습을 통해 String, Date 문자형을 처리하는 방법을 알아보자. 프로그래머스 String - 루시와 엘라 찾기 MySQL, Oracle SELECT ANIMAL_ID AS ANIMAL_ID, NAME AS NAME, SEX_UPON_INTAKE AS SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') ORDER BY ANIMAL_ID → MySQL, Oracle에서 모두 IN 조건을 사용해주면 된다.
-
[프로그래머스 MySQL,Oracle] - 보호소에서 중성화한 동물Data Engineering/MySQL & Oracle 2021. 6. 28. 17:26
[프로그래머스 JOIN - 보호소에서 중성화한 동물] (MySQL) *방법: ANIMAL_INS 기준으로 조인을 해주고, 중성화 여부가 다른 컬럼을 선택한다. SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID=B.ANIMAL_ID WHERE A.SEX_UPON_INTAKE!=B.SEX_UPON_OUTCOME ORDER BY A.ANIMAL_ID (Oracle - JOIN 사용) *사실 Oracle과 MySql이 많은 차이가 있는 것은 아니다. 그래서 Oracle에서 (+) 조인 조건을 한번 사용해보았다. SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME ..
-
[백준 6603번] 완전 탐색 기법Data Engineering/알고리즘 - Python 2021. 6. 28. 17:13
[백준 6603번 - 로또] https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net (오답) 문제점: "독일 로또는 수 6개를 고른다"는 조건을 고려주지 않았다. 고칠점: 문제의 조건을 꼭 확인하고 시작하자. import sys from itertools import permutations arr=[] while True: a=list(map(int, sys.stdin.readline().split())) arr.append(a) if a[..