목록 code review (147)
KEEP GOING
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/VXNFo/btrmSTLrfHC/LHYGPbsXvfmOFRFFOn4mlK/img.png)
[모음으로 끝나지 않는 도시명 구하기] SELECT DISTINCT CITY FROM STATION WHERE RIGHT(CITY, 1) NOT IN ('a', 'e', 'i', 'o', 'u') - RIGHT(컬럼명, n): 컬럼명 기준 오른쪽에서 n번째까지의 글자 [직업과 해당 직업을 가지고 있는 사람 수 조회하기] * 'There are a total of 3 teachers'와 같이 출력할 것. * 해당 직업을 가진 사람 수를 기준으로 오름차순, 만약 사람 수가 같다면 직업 알파벳 순으로 정렬할 것. SELECT CONCAT(NAME, '(', LEFT(OCCUPATION, 1), ')') FROM OCCUPATIONS ORDER BY NAME ASC; SELECT CONCAT('There are..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ANX8Q/btrmSygmRBm/TAgvdGukfzvoP4foUBxPV0/img.png)
(1) INNER JOIN (교집합) SELECT A.컬럼명 FROM 테이블명_1 A JOIN 테이블명_2 B ON A.ID = B.ID; 두 테이블의 공통된 내용을 뽑아내고 싶을 경우에 사용한다. 하나의 테이블을 두 테이블로 인식하여 INNER JOIN을 수행할 수도 있다. 해당 개념은 아래 예시를 통해 자세히 이해하고자 한다. 예제 -1) 홍초와 우유를 동시에 구입한 카트가 있다면 그 카드의 아이디를 조회하는 SQL문을 작성하시오. CART_ID CART_PRODUCT 18 우유 18 홍초 20 계란 23 두부 23 우유 예제 -1 답) SELECT DISTINCT A.CART_ID FROM CART_PRODUCT A INNER JOIN CART_PRODUCT B ON A.CART_ID = B.CAR..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d9pZIO/btrmQ4tyusm/kKK7dxB2zmkVVSX7Koho7K/img.png)
https://programmers.co.kr/learn/courses/30/lessons/59041%20%C2%B7 코딩테스트 연습 - 동명 동물 수 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KrQFr/btrvvCXl976/JVK4Ntg4WDPTdisaNKwpZK/img.png)
* 코딩테스트 준비를 위해 앞서 문법 정리와 더불어 실습에 쓰일 ddl 스크립트를 만들었습니다. 제공된 스크립트를 통해 직접 query를 작성해보시면 실력 향상에 큰 도움이 될 것입니다. https://sqltest.net/# SQL Test Free Online SQL Test Tool sqltest.net 해당 사이트에 방문하시면 따로 mysql 설치 없이도 ddl 스크립트를 이용해 보실 수 있습니다. 1. ddl scipt CREATE TABLE customer ( customer_id INT UNSIGNED PRIMARY KEY, acnumber VARCHAR(20), bank_id VARCHAR(20), balance INT(7), aod DATE, atype VARCHAR(10) ); INSE..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 코드 구현 import sys import heapq n = int(sys.stdin.readline()) h = [] for _ in range(n): data = int(sys.stdin.readline()) if data != 0: heapq.heappush(h,(abs(data),data)) else: if not h: print(0) else: print(hea..
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 문제 널리 잘 알려진 자료구조 중 최대 힙이 있다. 최대 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 큰 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를..
https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 문제 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입력 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. 출력 A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다. import sys a,b = map(int, sys.stdin.readline().split()) cnt=0 while True: if b%10==1: b=..
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 1. 코드 import sys box = [-1]*5001 box[3] = 1 box[5] = 1 n = int(sys.stdin.readline()) for i in range(6,n+1): if box[i-3] != -1: box[i] = box[i-3] + 1 if box[i-5] != -1: box[i] = box[i-5] + 1 print(box[n]) 처음에 틀린 이유는 if 문에서 if i%3 ..