전체 글
-
[백준 10845번] - Queue / PythonData Engineering/알고리즘 - Python 2021. 6. 30. 18:32
📍Deque ▪ 큐(Queue)는 선입선출 방식이다. ▪ 그러나 자료의 개수가 많아지면 큐의 연산이 느려지기 때문에 데크를 사용하게 된다. ▪ 데크(Deque)는 양방향 큐로, 앞뒤 양쪽에서 요소를 추가하거나 제거할 수 있다. 그래서 나는 데크를 이용해서 문제를 풀었다. 📍 Deque의 장점 ▪ 앞뒤에서 접근할 수 있기 때문에 append, pop이 매우 빠르다. ▪ 스택, 큐처럼 사용할 수 있다. [백준 10845번] - Queue https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거..
-
[백준 1260번] BFS, DFSData Engineering/알고리즘 - Python 2021. 6. 29. 15:46
[백준 1260번] DFS와 BFS] https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net (정답) 처음 해보는 문제라서 많이 어려워서 다른 답들을 참고했다. n,m,v=map(int,input().split()) mat=[[0]*(n+1) for _ in range(n+1)] visit=[0]*(n+1) for i in range(m): x,y=map(int, input().split()) mat[x][y]=m..
-
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 조건을 사용해주면 된다.