본문 바로가기
TIL

[TIL] 241115

by 좌우지간에 2024. 11. 15.

SQL 문제풀이

퀘스트

#1[Lv1. 데이터 속 김서방 찾기]
select count(name) as name_cnt
from users u 
where name like '김%'
;


#2[Lv2. 날짜별 획득포인트 조회하기]
select date_format(created_at,'%Y-%m-%d') created_at,
	   round(avg(point),0) average_points
from point_users
group by 1

 

프로그래머스

#1
SELECT ROUND(AVG(DAILY_FEE),0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV'
;

#2
SELECT HISTORY_ID,
       CAR_ID,
       DATE_FORMAT(START_DATE,'%Y-%m-%d') START_DATE,
       DATE_FORMAT(END_DATE,'%Y-%m-%d') END_DATE,       
       IF(DATEDIFF(END_DATE,START_DATE)+1>=30,'장기 대여','단기 대여') RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE LIKE '2022-09%'
ORDER BY HISTORY_ID DESC
;

#3
SELECT CAR_ID,
       CAR_TYPE,
       DAILY_FEE,
       OPTIONS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE ('%네비게이션%')
ORDER BY CAR_ID DESC
;

#4
SELECT  B.TITLE TITLE,
        B.BOARD_ID BOARD_ID,
        R.REPLY_ID REPLY_ID,
        R.WRITER_ID WRITER_ID,
        R.CONTENTS CONTENTS,
        DATE_FORMAT(R.CREATED_DATE,'%Y-%m-%d') CREATED_DATE
FROM USED_GOODS_BOARD B JOIN USED_GOODS_REPLY R ON B.BOARD_ID = R.BOARD_ID
WHERE B.CREATED_DATE LIKE '2022-10%'
ORDER BY  R.CREATED_DATE, B.TITLE
;

#5
SELECT ID,
       EMAIL,
       FIRST_NAME,
       LAST_NAME
FROM DEVELOPER_INFOS
WHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python'
ORDER BY ID
;

 

 

파이썬 문제풀이

#1 코드 처리하기 (10점)
def solution(code):
    mode = 0
    ret = ''
    
    for idx in range(0,len(code)):
        if mode == 0:
            if code[idx] != '1' and idx % 2 == 0:
                ret += code[idx]
            elif code[idx] == '1':
                mode = 1
                
        elif mode == 1:
            if code[idx] != '1' and idx % 2 == 1:
                ret += code[idx]
            elif code[idx] == '1':
                mode = 0
                
    if ret == '':
        return 'EMPTY'
    else:
        return ret
        
        
#2 등차수열의 특정한 항만 더하기 (1점)
def solution(a, d, included):
    answer = 0
    
    for i in range(len(included)):
        if included[i]:  
            answer += a + i * d
    
    return answer
    
    
#3 주사위 게임2 (4점)
def solution(a, b, c):
    answer = 1
      
    if a != b and a != c and b != c:
        answer = a + b + c
        
    elif a == b and a == c:
        answer = (a + b + c)*(a**2 + b**2 + c**2)*(a**3 + b**3 + c**3)
        
    else:        
        answer = (a + b + c)*(a**2 + b**2 + c**2)
    
    return answer

    
#4 원소들의 곱과 합 (1점)
def solution(num_list):
    p = 0
    m = 1
    
    for i in range(0,len(num_list)):
        p += num_list[i]
        m *= num_list[i]
    
    if m < p**2:
        answer = 1
    else:
        answer = 0
       
    return answer
    
    
#5 이어 붙인 수 (1점)
def solution(num_list):
    answer = 0
    odd = ''
    even = ''
    
    for i in range(0,len(num_list)):
        if num_list[i] %2 == 0:
            even += str(num_list[i])
        else:
            odd += str(num_list[i])
    answer = int(even) + int(odd)
    
    return answer

'TIL' 카테고리의 다른 글

[TIL] 241119  (1) 2024.11.19
[TIL] 241118  (2) 2024.11.18
[TIL] 241114  (4) 2024.11.14
[TIL] 241112  (2) 2024.11.12
[TIL] 241111  (1) 2024.11.11