목록전체 (348)
파게로그
Spring projects https://spring.io/projects Spring Framework Provides core support for dependency injection, transaction management, web apps, data access, messaging, and more. 기업형 응용 프로그램을 보조하기 위한 쉬운 프레임워크 ☕ Java SE(Java Standard Edition) 일반적인 로컬 응용 프로그램 개발을 위한 API 파일 I/O, 콘솔 I/O, 윈도우 I/O, 네트워크 I/O, Thread, ... ☕ Java EE(Java Enterprise Edition) → Spring으로 대체 분산형, 기업형 응용 프로그램 개발을 위한 API 결합력을 낮추는..
문제 링크: 17413번 단어 뒤집기 2 https://www.acmicpc.net/problem/17413 문제에서 시키는 대로 한다. string1은 입력 문자열이고, string2는 입력 문자열이며 idx1은 string1에 대한 인덱스이고, idx2는 string2에 대한 인덱스이다. 다른 것보다 인덱스를 일관되게 유지한는 것이 중요하다. 즉 예를 들어서 idx2가 마지막 문자의 위치를 가리키고 있는지, 또는 새로운 문자가 삽입될 위치를 가리키고 있는지를 섞어서 사용하면 안 되는 것이다. plain text, 즉 공백 사이에 있거나 문장의 처음이나 마지막에 있으며 태그가 아닌 '단어'의 경우 start와 end 인덱스를 별도로 설정해 단어의 시작과 끝을 알아낸다. 그 후 다시 끝에서부터 시작까지 ..
문제 링크: 12015번 가장 긴 증가하는 부분 수열 2 https://www.acmicpc.net/problem/12015 먼저 lower bound에 대해 알아야 한다. lower bound는 처음으로 나온 key보다 큰 수의 위치를 말한다. 이는 이분탐색 과정을 조금만 응용하면 된다. static int lowerBound(ArrayList list, int target) { int left = 0; int right = list.size(); int mid; while (left = target) right = mid-1; else left = mid+1; } return left; } 배열이 아닌 리스트로 구현해 두어서 좀 보기 불편하긴 하지만... 언젠가 left > right이 성립할 때, ..
문제 링크: 11053번 가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053 dp[i]는 arr[0~i]에서 가장 긴 증가하는 부분 수열(LIS)의 길이를 저장한다. 그렇다면 이 dp[n]을 어떻게 갱신하느냐가 관건인데, O(n^2)의 알고리즘은 그다지 어렵지 않다. dp[n]을 구할 때, j는 0부터 n-1까지 탐색하면서 arr[i]와 arr[j]를 비교한다. 이 때 arr[i]가 더 크다면, dp[i] 즉 arr[0~i]에서 LIS의 길이는 dp[j]보다 최소한 1만큼은 더 크다. 왜냐하면 arr[i]는 arr[0~j]의 모든 수보다 더 크기 때문에 arr[0~j]에서의 LIS의 맨 마지막 원소에 arr[i]가 덧붙을 수 있는 것이다. 하지만 이는 '최소한..
ROWNUM SELECT ROWNUM, empno, ename, title, sal FROM emp WHERE ROWNUM
using pivot and unpivot docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__CHDFIIDD pivot_clause docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__GUID-3C9CD3C5-0A70-4A6F-A76C-309A6502A2C3 Pivot and Unpivot www.oracle.com/technical-resources/articles/database/sql-11g-p..
RANK, DENSE_RANK SELECT ename, title, sal, RANK() OVER (ORDER BY sal DESC) RANK, DENSE_RANK() OVER (ORDER BY sal DESC) DENSE_RANK FROM emp WHERE title IN ('RESEARCHER', 'COOPERATOR', 'ANALYST'); OVER 뒤에 출력하고 싶은 데이터를 정렬하는 문장을 넣으면, 그 column의 값에 대한 데이터의 순위가 출력된다. SELECT ename, title, sal, RANK() OVER (PARTITION BY title ORDER BY sal DESC) 순위 FROM emp; title별로 묶이고, 순위도 title 내에서 계산된다. title은 항상 오름차순..
집계함수(aggregate function)는 단일한 행이 아니라 여러 행에 기반하여 함수가 적용된 결과를 반환한다. 주로 GROUP BY와 함께 쓰이며, 이는 질의의 대상인 테이블의 행을 분할하거나, 뷰를 여러 그룹으로 나누는 키워드이다. 이러한 각각의 그룹에 대해서 하나씩의 결과 행을 반환한다. MAX SELECT MIN(sal) FROM emp WHERE title = 'COOPERATOR'; MIN SELECT title, MIN(sal) 최솟값 FROM emp GROUP BY title ORDER BY 최솟값 DESC; SELECT MIN(sal) FROM emp WHERE 1 = 2; 그룹 함수는 WHERE절의 조건이 거짓이어도, 즉 이를 만족하는 row가 하나도 없더라도, NULL 결과를 출..