CS 51

[Algorithm] 백준 단계별로 풀어보기 - 단계 12. 동적 계획법1-(1)

동적 계획법 기초, 응용 2748. 피보나치 수 2 시간 제한이 있으므로 동적계획법(DP) 활용해야한다. Top-Down 방식을 활용해서 풀었음. 배열을 미리 -1로 다 채워놓고, fibo 메서드를 실행시킨 다음 해당 배열에 값을 채운다. 이미 실행되어 배열에 값이 존재할 경우 그 값을 그대로 사용한다. => 메모이제이션 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { BufferedReader rd = new BufferedReader(new InputS..

CS/Baekjoon 2019.08.03

[Algorithm] 백준 단계별로 풀어보기 - 단계 11. 정렬

정렬 알고리즘 기본, 응용 2750. 정렬 시간 복잡도 O(n²) (1) 선택 정렬: 배열의 앞이 줄어든다. import java.io.BufferedReader; import java.io.InputStreamReader; public class BOJ_2750 { public static void main(String[] args) throws Exception { BufferedReader rd = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(rd.readLine()); //수 입력 int number[] = new int[N]; for(int i=0; i

CS/Baekjoon 2019.07.30

[Algorithm] 백준 단계별로 풀어보기 - 단계 10. 브루트 포스

브루트 포스 알고리즘 응용 * 브루트 포스 알고리즘 가능한 모든 경우를 전부 만들어보는 알고리즘 2798. 블랙잭 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class BOJ_2798 { public static void main(String[] args) throws Exception { BufferedReader rd = new BufferedReader(new InputStreamReader(System.in)); String[] input = rd.readLine().split(" "); int N = Integer.parseInt(input[0]); int M = I..

CS/Baekjoon 2019.07.30

[Algorithm] 백준 단계별로 풀어보기 - 단계 9. 수학(2)

소수, 기하 다루기 1978. 소수 찾기 * 소수: 자신보다 작은 두 개의 자연수를 곱하여 만들 수 없는 1보다 큰 자연수 => 1과 자기 자신만을 약수로 갖는 자연수 ex) 2, 3, 5, 7, 11 ... import java.io.BufferedReader; import java.io.InputStreamReader; public class BOJ_1978 { public static void main(String[] args) throws Exception { BufferedReader rd = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(rd.readLine()); String[] input = rd..

CS/Baekjoon 2019.07.10

[Algorithm] 백준 단계별로 풀어보기 - 단계 8. 규칙 찾기 (2)

BaekJoon Oline Judge - Step 8 1011. Fly me to the Alpha Centauri 규칙 찾기 너무 어려웠던 문제 🤦🏻‍♀️ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nextInt(); for(int i=0; i 0) { while(distance != 0) { distance -= j; if(distance >= 0) { count++; } else { distance += j; j--; } } } System.out.println(count); } scan.clos..

CS/Baekjoon 2019.06.28

[Algorithm] 순환(Recursion)

순환 = 재귀 자기 자신을 호출하는 함수 = 재귀함수 = 순환 * 예시 int main() { int result = func(4); } int func(int n) { if (n==0) return 0; else return n + func(n-1); } 1~n까지의 합을 구한다. 무한루프에 빠지지 않으려먼 조건(base case)을 걸어주어야 함. 하지만 base case가 있다고 하여 모든 재귀함수가 종료되는 것은 아님. => recursion을 반복하다보면 결국 base case로 수렴해야 한다. (이 조건을 함께 만족해야 무한루프에 빠지지 않는다.) return하여 재귀를 빠져나오게 되면 마지막으로 실행했던 문장으로 돌아간다. int func(int n) { if (n0) int factoria..

CS/Algorithm 2019.06.09

[Algorithm] 알고리즘의 분석

알고리즘의 분석 - 시간복잡도 알고리즘을 어떻게 평가 할 것인가? 어떠한 자료구조, 알고리즘이 적합한 것인가를 판단하기 위해 필요한 기준과 방법론 * 알고리즘의 분석, 좋은 알고리즘이란 무엇인가? - 알고리즘의 자원(resource) 사용량을 분석 (보편적) - 자원이란 실행 시간, 메모리, 저장장치, 통신 등 - 여기서는 실행시간의 분석에 대해서 다룸 * 시간복잡도(time complexity) - 실행시간은 실행환경에 따라 달라짐 (하드웨어, 운영체제, 언어, 컴파일러 등) - 실행 시간을 측정하는 대신 연산의 실행 횟수를 카운트 => 어떠한 환경에서 실행하더라도 동일 - 연산의 실행 횟수는 입력 데이터의 크기에 관한 함수로 표현 => n에 관한 함수로 - 데이터의 크기가 같더라도 실제 데이터에 따라..

CS/Algorithm 2019.06.03

[RDBMS] SQL JOIN(4) - FULL OUTER JOIN, EXCLUSIVE LEFT JOIN

* 실습 테이블 topic tid title description author_id 1 HTML HTML is … 1 2 CSS CSS is … 2 3 Database Database is .. 1 4 Oracle Oracle is … NULL author aid name city profile_id 1 egoing seoul 1 2 leezche jeju 2 3 blackdew namhae 3 profile pid title description 1 developer developer is … 2 designer designer is … 3 DBA DBA is .. FULL OUTER JOIN 왼쪽과 오른쪽에 있는 모든 행을 가져오는 것. => 합집합 거의 지원하지 않는다. author_id = aid..

CS/Database 2019.05.27

[RDBMS] SQL JOIN(3) - INNER JOIN

INNER JOIN = JOIN 양쪽 모두에 존재하는 행만을 가지고 새로운 테이블을 만든다. 따라서 NULL이 존재하지 않음. => A 테이블과 B 테이블의 교집합 일반적으로 성능이 더 좋으므로 inner join을 할 수 있는 경우에는 inner join을 하는 것이 좋다. * 실습 테이블 topic tid title description author_id 1 HTML HTML is … 1 2 CSS CSS is … 2 3 Database Database is .. 1 4 Oracle Oracle is … NULL author aid name city profile_id 1 egoing seoul 1 2 leezche jeju 2 3 blackdew namhae 3 profile pid title de..

CS/Database 2019.05.27