목록분류 전체보기 (85)
Seung's Learning Record
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DNw4I/btsE6BHgKxy/s39XBKAvbGoVSVj3ddUg20/img.png)
소요시간 : 8분 문제 유형 : SELECT, GROUP BY 풀이 과정 1. USER_ID와 PRODUCT_ID로 그룹화 2. 동일한 요소들끼리 묶이게 됨 3. HAVING을 통해 USER_ID든 PRODUCT_ID든 그 수가 2 이상인 것들을 탐색 작성 코드 SELECT USER_ID,PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID,PRODUCT_ID HAVING COUNT(PRODUCT_ID)>1 ORDER BY USER_ID ASC, PRODUCT_ID DESC; 피드백 GROUP BY의 실행이 정확히 어떤 식으로 이루어지는지 잘 몰라서 집계함수를 써야되는 것을 알고있음에도 불구하고 좀 헤맸음. 다른것들은 몰라도 중요한 구문들은 확실이 이해하고 암기해야함을 또 다시..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/beBUa9/btsE2CfFBzl/qIcN3MPIiapTfUd4tx0rb0/img.png)
소요시간 : 6분 문제 유형 : SELECT 작성 코드 SELECT PT_NAME, PT_NO, GEND_CD, AGE, ifnull(TLNO,'NONE') TLNO FROM PATIENT WHERE AGE
JOIN을 통해 두 개 이상의 테이블을 연결해서 원하는 결과를 만들어 낼 수 있다. 이 때 테이블의 조인을 위해서는 기본키와 외래키가 연결되어야 하며, 이를 일대다 관계라고 한다. JOIN의 종류에는 아래와 같은 것들이 있다. INNER JOIN(내부 조인) : 두 테이블에서 공통된 값을 가지는 행들을 반환 OUTER JOIN(외부 조인) : 두 테이블에서 공통된 값을 가지지 않는 행들도 반환 LEFT OUTER JOIN : 왼쪽 테이블의 모든 행과 오른쪽 테이블에서 왼쪽 테이블과 공통된 값을 가지는 행들을 반환 RIGHT OUTER JOIN : 오른쪽 테이블의 모든 행과 왼쪽 테이블에서 오른쪽 테이블과 공통된 값을 가지는 행들을 반환 FULL OUTER JOIN : 두 테이블에서 모든 값을 반환 CRO..
SQL에는 DML, DDL, DCL, TCL구문으로 분류된다. DML 구문 - 데이터 조작 언어 - 테이블의 행에 사용하는 구문이므로 테이블 정의가 선행되어야 함 - SELECT, INSERT, UPDATE, DELETE가 여기에 속함 - ROLLBACK, COMMIT 가능 DDL 구문 - 데이터 정의 언어 - 데이터 베이스 개체(데이터베이스, 테이블, 뷰, 인덱스)를 생성, 삭제, 변경 - CREATE, DROP, ALTER가 여기에 속함 - ROLLBACK, COMMIT 불가능 DCL 구문 - 데이터 제어 언어 - 사용자에게 어떠한 권한을 부여하거나 빼앗을 때 사용 - GRANT, REVOKE - DDL구문과 마찬가지로 ROLLBACK, COMMIT 불가능 TCL 구문 - 트랜잭션 제어 언어 - 데이..
SQL에는 DML, DDL, DCL, TCL구문으로 분류된다. DML 구문 - 데이터 조작 언어 - 테이블의 행에 사용하는 구문이므로 테이블 정의가 선행되어야 함 - SELECT, INSERT, UPDATE, DELETE가 여기에 속함 - ROLLBACK, COMMIT 가능 DDL 구문 - 데이터 정의 언어 - 데이터 베이스 개체(데이터베이스, 테이블, 뷰, 인덱스)를 생성, 삭제, 변경 - CREATE, DROP, ALTER가 여기에 속함 - ROLLBACK, COMMIT 불가능 DCL 구문 - 데이터 제어 언어 - 사용자에게 어떠한 권한을 부여하거나 빼앗을 때 사용 - GRANT, REVOKE - DDL구문과 마찬가지로 ROLLBACK, COMMIT 불가능 TCL 구문 - 트랜잭션 제어 언어 - 데이..
SQL에는 DML, DDL, DCL, TCL구문으로 분류된다. DML 구문 - 데이터 조작 언어 - 테이블의 행에 사용하는 구문이므로 테이블 정의가 선행되어야 함 - SELECT, INSERT, UPDATE, DELETE가 여기에 속함 - ROLLBACK, COMMIT 가능 DDL 구문 - 데이터 정의 언어 - 데이터 베이스 개체(데이터베이스, 테이블, 뷰, 인덱스)를 생성, 삭제, 변경 - CREATE, DROP, ALTER가 여기에 속함 - ROLLBACK, COMMIT 불가능 DCL 구문 - 데이터 제어 언어 - 사용자에게 어떠한 권한을 부여하거나 빼앗을 때 사용 - GRANT, REVOKE - DDL구문과 마찬가지로 ROLLBACK, COMMIT 불가능 TCL 구문 - 트랜잭션 제어 언어 - 데이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bgMX5J/btsELsJlhde/bGhrnTTE4p0HT8KH8y3qSK/img.png)
난이도 : 실버2 소요시간 : 58분 사용한 풀이법 : 백트래킹 풀이 과정 1. 현재 원소 위치와 총합을 매개변수로 하는 func()정의 2. 현위치 변수가 n과 같고, 총합이 s와 같은 경우에 카운트 후 리턴 3. 조건 미 충족 시, func() 재귀 4. 재귀는 다음 위치의 수를 더하는 경우와, 더하지 않는 경우 두가지로 진행 5. S가 0일 때, 모두 더하지 않은 경우를 카운트에서 제외시켜야 함. 작성 코드 #include using namespace std; int n, s; int arr[30]; int cnt = 0; void func(int cur, int tot){ if(cur == n){ if(tot == s) cnt++; return; } func(cur+1, tot+arr[cur]);..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/buXItj/btsEGjNaa6F/qSpngKlSNtIqZP8m8W0Pz0/img.png)
난이도 : 골드5 소요시간 : 47분 사용한 풀이법 : bfs 풀이 과정 1. color 입력 받는 동시에 배열에 삽입 2. for문 돌면서 미방문한 곳 발견 시 bfs() 호출 3. bfs()함수에서는 호출 된 부분의 색과 동일한 곳만 탐색 4. 탐색이 끝나면 normal++ 후 bfs 재호출 5. color배열 탐색 종료 후, 적록색약 버전 카운트위해 vis[][] 0으로 재초기화 6. color배열의 'G'를 'R'로 대치 7. bfs()호출 및 blind++과정 반복 8. normal과 blind 각각 출력 작성 코드 #include #include #include using namespace std; queue Q; char color[101][101]; int vis[101][101]; int..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cixZIF/btsEEGQdkz6/QftmJd6fmJWiEKdukQ8Jdk/img.png)
난이도 : 실버2 소요시간 : 1시간 9분 사용한 풀이법 : bfs,queue 풀이 과정 1. 테스트 케이스 시작 때 마다 vis[][], bc[][] 배열 0으로 초기화 2. 배추 위치 입력 들어올 때 마다 bc[][]배열 1 삽입 3. for문 돌면서 방문 이력이 없으면서 배추가 있는 곳을 만나면 bfs 실행 => 하나의 배추 군단이 끝나면 bfs종료 후, cnt++됨 4. cnt값 출력 작성 코드 #include #include #include using namespace std; queue Q; int bc[50][50]; int vis[50][50]; int t,n,m,k,x,y; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int d..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bE4SZ2/btsEmWE2ZH6/LLaG6QE0If7WnEdXrAscpk/img.png)
난이도 : 실버1 소요시간 : 1시간 28분 사용한 풀이법 : dfs,queue 풀이 과정 1. 수빈 현 위치로 부터의 거리 측정용 배열 dist[], 이동 가능 위치 체크용 큐 Q[] 생성; 2. dist[]는 -1로 초기화, Q[]에 수빈 현위치 push; 3. dist[k]에 값이 들어가기 전까지 while 루프{} 4. 현위치 확인용 변수 cur에 Q.front() 대입; 5. cur이 -1, +1,*2 일때의 상황 for문 돌리면서 bfs 진행 6. 조건 충족 시, 해당 상황의 dist 값을 dist[cur]+1로 설정; 7. while 탈출 시 dist[k]값 출력; #include #include using namespace std; queue Q; int dist[100002]; int m..