알고리즘 풀이(358)
-
[알고리즘] 조건부 LCS
LCS 문제 중에서 X, Y를 비교하는데 X의 원소를 최대 k개 바꿀 수 있는 문제의 경우 다음과 같이 풀 수 있다. def lcs(dp, arr1, n, arr2, m, k): for x in range(1, k+2): for i in range(1, len(arr1)+1): for j in range(1, len(arr2)+1): if arr1[i-1] == arr2[j-1]: dp[x][i][j] = max(dp[x][i][j-1], dp[x][i-1][j], dp[x][i-1][j-1] + 1) else: dp[x][i][j] = max(dp[x][i][j-1], dp[x][i-1][j], dp[x-1][i-1][j-1] + 1) return dp[-1][-1][-1] # Driven Progra..
2023.11.06 -
[알고리즘] 자연수 뒤집어 배열로 만들기
문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 nreturn 12345[5,4,3,2,1] 나의 풀이 - 캐스팅과 reverse를 통해 풀었다 - 하지만 리팩토링의 여지가 있다. def solution(n): reverse_n = list(map(int, list(str(n)))) reverse_n.reverse() return reverse_n - reversed를 하면 한문장으로 줄일 수 있다. - 주의해야할 점은 reversed는 iter를 반환한다는 것이다. def solution(n): return list(revers..
2023.11.06 -
[SQL][3] 오프라인/온라인 판매 데이터 통합하기
문제 설명 다음은 어느 의류 쇼핑몰의 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블과 오프라인 상품 판매 정보를 담은 OFFLINE_SALE 테이블 입니다. ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냅니다. Column nameTypeNullable ONLINE_SALE_IDINTEGERFALSE USER_IDINTEGERFALSE PRODUCT_IDINTEGERFALSE SALES_AMOUNTINTEGERFALSE SALES_DATEDATEFALSE 동일한 날짜, 회원 ID, 상품 I..
2023.11.06 -
[SQL][3] 어린 동물 찾기
문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_IDVARCHAR(N)FALSE ANIMAL_TYPEVARCHAR(N)FALSE DATETIMEDATETIMEFALSE INTAKE_CONDITIONVARCHAR(N)FALSE NAMEVARCHAR(N)TRUE SEX_UPON_INTAKEVARCHAR(N)FALSE 동물 보호소에..
2023.11.04 -
[알고리즘] x만큼 간격이 있는 n개의 숫자
문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 입출력 예 xnanswer 25[2,4,6,8,10] 43[4,8,12] -42[-4, -8] 나의 풀이 - for문을 활용하면 쉽게 풀 수 있는 문제 def solution(x, n): answer = [] for i in range(1, n+1): answer.append(x*i) return answer
2023.11.03 -
[SQL][3] 강원도에 위치한 생산공장 목록 출력하기
문제 설명 다음은 식품공장의 정보를 담은 FOOD_FACTORY 테이블입니다. FOOD_FACTORY 테이블은 다음과 같으며 FACTORY_ID, FACTORY_NAME, ADDRESS, TLNO는 각각 공장 ID, 공장 이름, 주소, 전화번호를 의미합니다. Column nameTypeNullable FACTORY_IDVARCHAR(10)FALSE FACTORY_NAMEVARCHAR(50)FALSE ADDRESSVARCHAR(100)FALSE TLNOVARCHAR(20)TRUE 문제 FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요. 예시 FOOD_FACTORY 테이블이 다..
2023.11.03