programming language/Algorithm 82

[SQL String, DATE] 프로그래머스 루시와 엘라 찾기, 이름에 el 있는 동물 찾기, 중성화 여부 파악하기, 오랜기간 보호한 동물, DATETIME 형 변환

코딩테스트 연습 - 루시와 엘라 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 나의 풀이 SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE from ANIMAL_INS WHERE NAME = 'Lucy' or NAME = 'Ella' or NAME = 'Pickle' or NAME = 'Rogan' or NAME = 'Sabrina' or NAME = 'Mitty' ORDER BY ANIMAL_ID WHERE..

[SQL NULL] 프로그래머스 NULL 처리하기

코딩테스트 연습 - NULL 처리하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name'), SEX_UPON_INTAKE from ANIMAL_INS 개념 ㅣ IFNULL(A, B) : A가 NULL이면 B, 그렇지 않으면 A를 반환

[SQL GROUP BY] 프로그래머스 고양이와 개는 몇 마리 있을까, 동명 동물 수 찾기, 입양 시각 구하기

코딩테스트 연습 - 고양이와 개는 몇 마리 있을까 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr select ANIMAL_TYPE, COUNT(ANIMAL_TYPE) from ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE 등장하는 개념 GROUP BY, COUNT 코딩테스트 연습 - 동명 동물 수 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. A..

[완전탐색 simulating 예제] 프로그래머스 완전탐색 level2 소수찾기

문제 https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 문제 풀이 첫번째 난관 주어진 원소들로 만들 수 있는 정수들을 만드는 것이 문제였다. 이 때 permutations 함수를 이용했다. from itertools import permutations 처음 사용하는 모듈이였는데, 알아야 하는 유용한 모듈이였다. 이 사이트를 이용해 사용했다. https://blog.naver.com/hunii123..

[Divide and Conquer 예제] 프로그래머스 Level3 네트워크

문제 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제 풀이 1 네트워크의 개수는 연결되지 않는 컴퓨터들의 상황의 개수이다. computer[i][i]에서 이동할 수 있는 컴퓨터들을 recursion으로 false로 바꾸어 준다. solution에서, 1~n까지의 컴퓨터 개수대로 dfs를 돌리고, 각 computer[i][i]와 연결되어 있는 컴퓨터들로 이동해서 값을 false로 바꾸어 준다. 만약 마지막이 true로 끝나면 answer++ 한다. #include #include using names..

[Divide and Conquer 예제] 프로그래머스 Level2 타겟넘버

문제 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제 풀이 #include #include using namespace std; int answer = 0; void dfs(vector numbers, int target,int sum, int count){ if(count == numbers.size()){ if(sum == target) answe..

Branch and Bound

Branch and Bound Similar to “Backtracking” - a state-space tree is used to solve a problem (pruning tree 사용한다) Different from “Backtracking” - does not limit us to any particular way of traversing a tree (탐색하는데에, 방법제한이 없다.) (backtrack에서는 recursion기반의 dfs가 중점적이다) - is used only for optimization problems (bound값을 사용해야해서, 최적문제들만 사용가능함) Step 1 computes a number (bound) at a node to determine whether..

[Dynamic Programming 예제] 백준 12865 배낭문제

문제 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 문제 풀이 #include using namespace std; int n, k; int w[100001] = { 0, }; int v[1001] = { 0, }; int dp[101][100001] = { 0, }; int main() { //물품의 수 N과 준서가 버틸수있는 무게 K주어진다 //두번째 줄부터, N개의 줄에 거쳐 각 물건의 무게 W와 해당 물건의 가치V가 주어진다 cin >>..

[Backtracking 예제] 백준 9663 N-Queens

문제 https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net N*N 배열을 만들 필요없이, 크기가 N인 일차원 배열을 만든 후 각 열에 몇번째 행에 퀸이 있는지를 저장한다. #include #define MAX 15 using namespace std; int N; int map[MAX]; int ans = 0; bool promising(int i) {//i번째 퀸과 1~i-1번째 퀸과 비교한다 int k = 1;//i번째 퀸을 배치하기 전의 퀸 bool check..

[Greedy Approach 예제] 백준 2839 설탕배달

문제 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 풀이 #include using namespace std; //promising의 조건 int N; int ans = 0; int main() { // 설탕을 정확하게 N킬로그램을 배달해야한다. //봉지에는 3,5가 있다. cin >> N; while (N>0) { //N의 경우 //(1) 5의 배수 //(2) 3의 배수 //5,3의 배수가 아닌수 //3-1 5보다 큰 수 //3-2 음수 if (..