분류 전체보기
-
[프로그래머스 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[..
-
[백준 10819번] 완전 탐색 기법Data Engineering/알고리즘 - Python 2021. 6. 28. 15:29
[백준 10819번 - 차이를 최대로] https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net (첫번째 시도 - 오답) 생각했던 방법: |가장 큰 수 - 가장 작은 수| + |두번째 큰 수 - 두번째 작은 수| + ... 로 하면 될 것 같았다. n=int(input()) nums=list(map(int, input().split())) max=sorted(nums, reverse=True) min=sorted(nums) sum=0 for i in range(n//..
-
[백준 10974번] 완전 탐색 기법Data Engineering/알고리즘 - Python 2021. 6. 28. 14:36
📍완전 탐색 기법이란? : (컴퓨터의 계산을 이용하여) 가능한 모든 경우의 수를 확인해서 정답을 찾는 방법이다. 📍언제 사용하는가? : 시간이 많이 들기 때문에 탐색 범위가 적을 때 사용한다. 📍완전 탐색을 이용하기 위해서 사용되는 5가지 알고리즘 ◾ Brute-Force ◾ 비트마스크 ◾ 재귀 함수 ◾ 순열 ◾ BFS/ DFS 📍각 알고리즘에 대해 살펴보자. 1⃣ Brute-Force : 단순하게 for, if 문으로 모든 경우의 수를 찾는다. 2⃣ 비트마스크 : 2진수 표현 기법을 사용한다. (AND, OR, XOR, SHIFT, NOT) 3⃣ 재귀 함수 : 함수 내에서 자기 자신을 다시 호출한다. 4⃣ 순열 : 서로 다른 n개의 원소에서 r개의 중복을 허용하지 않고 순서대로 나열한다. ex) [1,..
-
[백준 10610번] 그리디 알고리즘Data Engineering/알고리즘 - Python 2021. 6. 27. 18:31
[백준 알고리즘 - 10610번 30] https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net (오답) 문제: 시간초과 *그래도 문제는 잘 풀었다! 시간 초과는 차차 해결해 나가면 된다. import itertools n=list(str(int(input()))) nums=list(map(int, map(''.join, itertools.permutations(n)))) nums.sort(reverse=True) #가장 큰 수를 찾아야 하므로 내림차순 ..