728x90
반응형

분류 전체보기 221

[백준/DP/C++] 2156번 포도주 시식

https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net #include using namespace std; int n; int dp[10001] = {0}, arr[10001]={0}; int main(void) { cin >> n; for(int i=1; i> arr[i]; dp[1] = arr[1]; dp[2] = arr[1] + arr[2]; for(int i=3; i

알고리즘 2022.12.24

[백준/DP/C++] 11727번 2xn 타일링 2

https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 위 그림처럼 점화식은 dp(n) = dp(n-1) + 2 X dp(n-2)가 된다 #include using namespace std; int n; int dp[1001]; int main(void) { cin >> n; dp[1] = 1; dp[2] = 3; for(int i=3; i

알고리즘 2022.12.22

[ORACLE] 테이블 구조 및 데이터 복사

테이블 구조 및 데이터 복사하기 CREATE TABLE 신규테이블명 AS SELECT * FROM 복사할테이블명 [WHERE] 테이블 구조만 복사하기 CREATE TABLE 신규테이블명 AS SELECT * FROM 복사할테이블명 WHERE 1=2 테이블이 존재할경우, 데이터만 복사하기(구조가 같은경우) INSERT INTO 복사대상테이블명 SELECT * FROM 원본테이블명 [WHERE] 테이블이 존재할경우, 데이터만 복사하기(구조가 다를경우) INSERT INTO 복사대상테이블명 (COL1, COL2) SELECT COL1, COL2 FROM 원본테이블명 [WHERE]

DB/ORACLE 2022.12.21

[ORACLE] 중복데이터 조회 및 삭제(ROWID, PARTITION BY 사용)

중복된 데이터를 삭제할때 pk가 있으면 pk를 쓰면 되지만 pk가 없는 경우에는 ROWID를 사용해서 중복데이터를 삭제할 수 있다 ROWID ROWID는 ORACLE 에서 INDEX를 생성하기 위해 내부적으로 사용하는 PSEUDOCOLUMN으로 사용자가 임의로 변경하거나 삭제할 수 없다. ROWID는 테이블에 데이터를 입력하면 자동으로 생성되고 각각 고유의 값을 갖게 된다. 000000 000 000000 000 오브젝트 번호 상대 파일 번호 블록 번호 블록 내 행번호 ex) AAAdtzAAaAAEe0bAAA 1. 오브젝트 번호 : 오브젝트의 고유 번호 2. 상태 파일 번호 : 테이블스페이스에 속해있는 데이터 파일에 대한 상대 파일번호 3. 블록 번호 : 데이터 블록의 위치를 알려주는 번호 4. 블록 내..

DB/ORACLE 2022.12.21

[백준/DP/C++] 11726번 2xn 타일링

https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 2 x n 크기의 타일을 채우는 문제이고 DP를 이용한다. 그래서 점화식은 dp(n) = dp(n-1) + dp(n-2) #include using namespace std; int n; int arr[1000]; int main(void) { cin >> n; arr[0] = 1; arr[1] =2; for(int i=2; i

알고리즘 2022.12.19

[이코테/DP/C++] 병사 배치하기 (최장 증가 부분 수열 알고리즘, LIS)

최장 증가 부분 수열 알고리즘(Longest Increasing Subsequence, LIS) #include using namespace std; int n; vector arr; int main(void) { cin >> n; for(int i=0; i> x; arr.push_back(x); } // 순서를 뒤집어 '최장 증가 부분 수열' 문제로 변환 reverse(arr.begin(), arr.end()); // DP 테이블 초기화 : arr[i]를 마지막 원소로 가지는 부분수열의 최대 길이 int dp[2000]; for(int i=0; i

알고리즘 2022.12.14
728x90
반응형