본문 바로가기

전체 글173

[SQL] 프로그래머스 join 131124 https://school.programmers.co.kr/learn/courses/30/lessons/131124 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- 코드를 입력하세요 select member_name, review_text, date_format(REVIEW_DATE, '%Y-%m-%d') as review_date from member_profile m inner join rest_review r where m.member_id = r.member_id and r.member_id = (select member_id from rest.. 2023. 2. 23.
[SQL] 프로그래머스 join 131533 https://school.programmers.co.kr/learn/courses/30/lessons/131533 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT product_code, sum(product.price * offline_sale.sales_amount) as sales from product inner join offline_sale where product.product_id = offline_sale.product_id group by product_code order by sales desc, product_code asc 2023. 2. 23.
[SQL] 프로그래머스 join 144854 https://school.programmers.co.kr/learn/courses/30/lessons/144854 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE,'%Y-%m-%d') as PUBLISHED_DATE from BOOK inner join AUTHOR where BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID and CATEGORY = '경제' order by PUBLISHED_DATE ASC 2023. 2. 23.
[Priority Queue] python 2075 N번째 큰 수 https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net # 2023.02.09 import sys input = sys.stdin.readline import heapq n = int(input()) h = [] for i in range(n): num = list(map(int, input().split())) for j in range(n): if len(h) 2023. 2. 9.
[DP] python 9251 LCS https://www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net # 2023.02.08 import sys input = sys.stdin.readline A = list(ord(a)-65 for a in input().rstrip()) B = list(ord(b)-65 for b in input().rstrip()) dp = list([0]*(len(B)+1) for _ in range(len(A)+1)) for .. 2023. 2. 8.
[DP] python 2156 포도주 시식 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net # 2023.02.07 import sys input = sys.stdin.readline # 포도주를 2잔 연속까지는 마실 수 있음, 될 수 있는 대로 많은 양의 포도주를 맛보아야 함 n = int(input()) grape = [int(input()) for _ in range(n)] dp=[0]*(n) dp[0] = grape[0] if n==2: dp[1]=grape[0]+grape[1] i.. 2023. 2. 7.
[Binary Search] python 10815 숫자 카드 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net # 2023.02.05 import sys input = sys.stdin.readline n = int(input()) # 숫자 카드의 개수 nCard = sorted(list(map(int, input().split()))) # 숫자 카드 m = int(input()) # 확인할 숫자카드의 개수 mCard = list(map(int, input().split()).. 2023. 2. 5.
[Two Pointer] python 1806 부분합 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net # 2023.02.04 import sys input = sys.stdin.readline n, s = map(int, input().split()) # 수열의 길이, 합 S이상이 되는 것 중 가장 짧은 것의 길이 a = list(map(int, input().split())) # 수열 left, right = 0, 0 answer=10**9 tmp=0 while True: if t.. 2023. 2. 4.
[문자열] python 20437 문자열 게임2 https://www.acmicpc.net/problem/20437 20437번: 문자열 게임 2 첫 번째 문자열에서 3번에서 구한 문자열은 aqua, 4번에서 구한 문자열은 raquator이다. 두 번째 문자열에서는 어떤 문자가 5개 포함된 문자열을 찾을 수 없으므로 -1을 출력한다. www.acmicpc.net # 2023.02.03 import sys input = sys.stdin.readline from collections import defaultdict t = int(input()) for _ in range(t): w = input().rstrip() k = int(input()) dic = defaultdict(list) for i in range(len(w)): # 문자열의 index.. 2023. 2. 3.
[DP] python 1309 동물원 https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net # 2023.02.03 import sys input = sys.stdin.readline n = int(input()) answer=0 dp=[[0]*(n+1) for _ in range(3)] # 경우의 수를 저장 dp[0][1]=1 # 모두 선택하지 않는 경우 dp[1][1]=1 # 1행을 선택하는 경우 dp[2][1]=1 # 2행을 선택하는 경우 for i in range(2,n+1): #col을 +1씩 이동 # 현재 아무것도 선택하지 않았다면 그 전에는 (아무것도 선택하지 않음, 1행 선택, 2행 선택)->3가지 경우 모.. 2023. 2. 3.
[DP] python 12852 1로 만들기2 https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net # 2023.01.30 import sys input = sys.stdin.readline n = int(input()) dp=[[0]*(2) for _ in range(n+1)] #연산을 하는 횟수의 최솟값 dp[1][0]=0 # 연산횟수 dp[1][1]=[1] # 연산순서 # n~1 dp table탐색 for i in range(2, n+1): dp[i][0]=dp[i-1][0]+1 # 연산횟수 dp[i][1]=dp[i-1][1]+[i] # 연산순서 if i%3==0 and dp[i//3][0]+1.. 2023. 2. 1.
[DP] python 2193 이친수 https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net # 2023.01.29 import sys input = sys.stdin.readline n = int(input()) dp = [[0]*(2) for _ in range(n)] dp[0][0], dp[0][1]= 0, 1 for i in range(1, n): for j in range(2): if j==0: dp[i][j]=dp[i-1][0]+dp[i-1][1] else: dp[i.. 2023. 1. 29.