25.05.19 코딩 공부 시작

코딩 척척석박사 분들 피드백 환영합니다.

공대생이 코딩에서 살아남기

코드카타(알고리즘+SQL)

07.01 코드카타

코딩 아가 2025. 7. 1. 10:07

Python3

Q

숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.

예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.

<제한사항>

  • 1 ≤ p의 길이 ≤ 18
  • p의 길이 ≤ t의 길이 ≤ 10,000
  • t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다.

A

def solution(t, p):
    answer = 0
    
    for i in range(0, len(t)-len(p)+1):
        n = t[i:i+len(p)]
        if n <= p:
            answer += 1

    return answer

풀이

  • range(0, len(t) - len(p) + 1): t에서 p와 같은 길이의 부분 문자열 탐색
  • n = t[i:i + len(p)]: p길이만큼 슬라이싱 하여 부분 문자열 추출

My SQL

Q

다음은 중고 거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고 거래 게시판 사용자 정보를 담은 USED_GOODS_USER 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS는 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다. USED_GOODS_USER 테이블은 다음과 같으며 USER_ID, NICKNAME, CITY, STREET_ADDRESS1, STREET_ADDRESS2, TLNO는 각각 회원 ID, 닉네임, 시, 도로명 주소, 상세 주소, 전화번호를 를 의미합니다.

USED_GOODS_BOARD USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.

A

SELECT b.USER_ID, b.NICKNAME, sum(a.PRICE) as TOTAL_SALES
from USED_GOODS_USER b inner join USED_GOODS_BOARD a
    on a.WRITER_ID = b.USER_ID
where a.STATUS = 'Done'
group by b.USER_ID, b.NICKNAME
having sum(a.PRICE) >= 700000
order by TOTAL_SALES

같은 A(서브쿼리 존재)

SELECT U.USER_ID
        ,NICKNAME
        ,TARGETS.TOTAL_SALES
FROM USED_GOODS_USER as U
    JOIN 
        (SELECT WRITER_ID AS USER_ID
                ,SUM(PRICE) AS TOTAL_SALES
        FROM USED_GOODS_BOARD
        WHERE STATUS = 'DONE'
        GROUP BY WRITER_ID
        HAVING SUM(PRICE) >= 700000) AS TARGETS
    ON U.USER_ID = TARGETS.USER_ID
ORDER BY TARGETS.TOTAL_SALES

 

'코드카타(알고리즘+SQL)' 카테고리의 다른 글

07.04 코드카타  (3) 2025.07.04
07.02 코드카타 (SQL floor)  (0) 2025.07.02
06.30 코드카타  (2) 2025.06.30
06.27 코드카타  (0) 2025.06.27
06.26 코드카타 (파이썬 배열, SQL 새 컬럼 추가)  (0) 2025.06.26