<aside> 💬 lv0, 정렬

뮤라의 휴가 입력

문제 설명

Untitled

뮤라는 위니브 직원들의 휴가를 입력하는 업무를 맡았습니다. 휴가는 '일-월-연', '월/일/연', '연.월.일' 등 다양한 형식으로 뮤라에게 전달되었습니다. 이 날짜들을 '연/월/일' 형식으로 변환한 후, 오름차순으로 정렬하는 코드를 작성해주세요.


제한 사항


입출력 예

입력 출력
['20-01-2024', '12/15/2023', '2022.05.30'] ['2022/05/30', '2023/12/15', '2024/01/20']
['03/25/2021', '2020.12.31', '15-04-2022'] ['2020/12/31', '2021/03/25', '2022/04/15']

입출력 설명

주어진 날짜를 '연/월/일' 형식으로 변환한 후 오름차순으로 정렬합니다. 예를 들어, '20-01-2024'는 '2024/01/20'로, '12/15/2023'는 '2023/12/15'로 변환됩니다. 이러한 변환을 적용하여 모든 날짜를 변환하고 정렬한 결과를 출력합니다.

</aside>

😺 풀이 1. 문자열 메서드

def solution(dates): **#1 함수 정의**
    def convert_date(date): **#2 함수 정의**
        **#3 날짜 분리**
        if "-" in date:
            day, month, year = date.split("-")
        elif "/" in date:
            month, day, year = date.split("/")
        else:  
            year, month, day = date.split(".")

        return year, month, day
   
    converted_dates = [convert_date(date) for date in dates] **#4 형식 변환**

    sorted_dates = sorted(converted_dates) **#5 정렬**

    return ["/".join(date) for date in sorted_dates] **#6 결과 반환**

단계별 풀이 전략

  1. 함수 정의

    코드의 첫 부분에서 solution이라는 함수를 정의합니다. 이 함수는 하나의 인자 dates를 받습니다. dates는 날짜 리스트입니다.

  2. 함수 정의

    날짜 리스트의 각 원소를 인자로 받습니다.

  3. 날짜 분리

    날짜 사이의 구분자를 기준으로 날짜를 분리하여 연, 월, 일 순서로 반환합니다. 요구사항에 맞춰 구현하기 위함입니다. split 메서드를 사용하였습니다.

  4. 형식 변환

    dates 리스트의 각 요소(날짜)를 convert_date 함수에 전달하여 연/월/일 형식으로 변환합니다.

  5. 정렬

    변환된 날짜를 오름차순으로 정렬합니다.

  6. 결과 반환

    정렬된 날짜들을 / 를 포함한 연/월/일 형식으로 변환하여 반환합니다.

알아둬야 할 개념

join() 메서드

풀이 2. datetime 모듈

from datetime import datetime **#1 모듈 정의**

def solution(data): **#2 함수 정의**
    result = [] 
    for i in data: **#3 날짜 형식 지정**
        if '-' in i:
            date_format = '%d-%m-%Y'
        elif '/' in i:
            date_format = '%m/%d/%Y'
        else:
            date_format = '%Y.%m.%d'
            
        **#4 문자열 변환**
        date = datetime.strptime(i, date_format) 
        result.append(date)
        
    result.sort() **#5 정렬**
    
    return [i.strftime('%Y/%m/%d') for i in result] **#6 결과 반환**

단계별 풀이 전략

  1. 모듈 정의

    날짜 조작을 위한 datetime 모듈을 정의합니다.

  2. 함수 정의

    solution이라는 함수를 정의합니다. 이 함수는 하나의 인자 data를 받습니다. data는 날짜 리스트입니다. 임시 데이터 저장소 역할을 위한 result 리스트를 선언합니다.