코딩테스트

[26.02.03 코테(Python/MySQL)]-추억 점수&노선별 평균 역 사이 거리 조회하기

지니248 2026. 2. 3. 13:58

Lv1. 추억 점수 (Python)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/176963

 

내가 작성한 코드

def solution(name, yearning, photo):
    answer = [] 
    score = dict(zip(name, yearning))
    # {이름:그리움 점수} 형태의 딕셔너리 생성
    
    # photo는 2차원 리스트이므로 사진 한 장씩 순회
    for one_photo in photo:
        total = 0 # 현재 사진의 추억 점수 0으로 초기화
        
        # 사진 속 인물 한 명씩 확인
        for person in one_photo:
            total += score.get(person, 0) # person이 score딕셔너리에 있으면 해당 점수, 없으면 0점을 더함
        
        answer.append(total)
        
    return answer

Lv2. 노선별 평균 역 사이 거리 조회하기 (MySQL)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/284531

 

내가 작성한 코드

-- 풀이1 (ROUND + CONCAT)
SELECT ROUTE
       ,CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') AS TOTAL_DISTANCE
       ,CONCAT(ROUND(AVG(D_BETWEEN_DIST), 2), 'km') AS AVERAGE_DISTANCE
FROM SUBWAY_DISTANCE
GROUP BY ROUTE
ORDER BY SUM(D_BETWEEN_DIST) DESC;

-- 풀이2 (서브쿼리)
SELECT ROUTE
       ,CONCAT(ROUND(TOTAL_DIST, 1), 'km') AS TOTAL_DISTANCE
       ,CONCAT(ROUND(AVG_DIST, 2), 'km') AS AVERAGE_DISTANCE
FROM (SELECT ROUTE
             ,SUM(D_BETWEEN_DIST) AS TOTAL_DIST
             ,AVG(D_BETWEEN_DIST) AS AVG_DIST
      FROM SUBWAY_DISTANCE
      GROUP BY ROUTE) T
ORDER BY TOTAL_DIST DESC;


-- Oracle에서의 문자열 연결
-- ROUND(SUM(D_BETWEEN_DIST), 1) || 'km' AS TOTAL_DISTANCE

 

Oracle에서는 문자열 연결에 CONCAT 대신 || 연산자를 사용한다