♟️ 알고리즘 146

[Python][프로그래머스] N으로 표현 / DP (Lv3)

🖇️ 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr🗒️ 파이썬 코드 풀이def solution(N, number): answer = 0 dp = [set() for _ in range(9)] dp[1].add(N) if number == N : return 1 for p in range(2,9): dp[p].add(int(str(N) * p)) for i in range(1,p): ..

[Python][프로그래머스] 등굣길 / DP (Lv3)

🖇️ 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr🗒️ 파이썬 코드 풀이def solution(m, n, puddles): answer = 0 dp = [[0] * (m+1) for _ in range(n+1)] puddles = [[q,p] for p,q in puddles] for i in range(1,n+1): for j in range(1,m+1): if i == j == 1: ..

[MySQL][프로그래머스] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 / (Lv4)

https://school.programmers.co.kr/learn/courses/30/lessons/157339🗒️SQL 코드 풀이 # 자동차 종류 : 세단 or SUV / 2022년 11월 1일 ~ 11월 30일 / 대여 금액 50만원 ~ 200만원 # 자동차 ID / 자동차 종류 / 대여 금액 # 대여 금액(FEE) 기준 내림차순 정렬 / 자동차 종류 오름차순 / 자동차 ID 내림차순SELECT C.CAR_ID, C.CAR_TYPE, ROUND(DAILY_FEE*30*((100-D_P.DISCOUNT_RATE)/100),0) FEE FROM CAR_RENTAL_COMPANY_CAR C LEFT JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY R..

[Python][프로그래머스] 가장 큰 수 / 정렬 (Lv2)

🖇️ 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42746#🗒️ 파이썬 코드 풀이def solution(numbers): lst = list(map(str,numbers)) lst = sorted(lst, key=lambda x:x*3, reverse=True) answer = str(int(''.join(lst))) return answer 시간 복잡도 O( N·Log N)  1. 해당 문제에서 일반 정렬을 하면 안된다. [3, 30, 34, 5, 9]일반 정렬을 할 경우, [9, 5, 34, 30, 3] 이 되는데, 이거를 합쳐도 최대 값이 나오지 않는다.   2. 이 문제의 목표는 저런 배열이 ..

[Python][프로그래머스] 전화번호 목록 / 해시,정렬 (Lv2)

🖇️ 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42577🗒️ 파이썬 코드 풀이 1def solution(phone_book): answer = True phone_book.sort() for i in range(len(phone_book)-1): if phone_book[i+1].startswith(phone_book[i]): return False return answer 1. phone_book이 문자열임에 주목하여 sort를 해준다.  2. startswith 함수로 현재 번호와 다음 번호를 비교해준다.문자열 크기대로 정렬했으므로 접두사 중복 무조건 체크 가능중복되는 부분은 ..

[MySQL][Leet Code] 1633. Percentage of Users Attended a Contest (Easy)

https://leetcode.com/problems/percentage-of-users-attended-a-contest/?envType=study-plan-v2&envId=top-sql-50🗒️SQL 코드 풀이 SELECT R.contest_id, ROUND(COUNT(DISTINCT R.user_id)/(SELECT COUNT(DISTINCT user_id)FROM Users)*100 ,2) percentage FROM Register R GROUP BY contest_id ORDER BY percentage DESC, contest_id 1. 메인 테이블은 Register의 테이블이다.  2. Register 테이블을 cont..