본문 바로가기

PYTHON/CODING TEST

[programmers] 개인정보 수집 유효기간

728x90

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/150370

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

# 날짜를 일로 통일시킴
def date2day(dt):
    return int(dt.split('.')[0]) * 12 * 28 + int(dt.split('.')[1]) * 28 + int(dt.split('.')[2])

def solution(today, terms, privacies):
    answer = []
    today = date2day(today)

    terms = {term[0]: int(term.split()[1]) for term in terms}

    for i in range(len(privacies)):
        privacy = privacies[i]
        if terms[privacy[-1]] * 28 + date2day(privacy.split()[0]) <= today:
            answer.append(i+1)

    return answer

- map 쓰는 방법 연습하기

- list 를 dict로 바꾸는 dict comprehension

 

다른 사람 풀이 

def to_days(date):
    year, month, day = map(int, date.split("."))
    return year * 28 * 12 + month * 28 + day

def solution(today, terms, privacies):
    months = {v[0]: int(v[2:]) * 28 for v in terms}
    today = to_days(today)
    expire = [
        i + 1 for i, privacy in enumerate(privacies)
        if to_days(privacy[:-2]) + months[privacy[-1]] <= today
    ]
    return expire
728x90

'PYTHON > CODING TEST' 카테고리의 다른 글

[DFS/BFS] 음료수 얼려 먹기  (0) 2024.05.10
[programmers] 카드 뭉치  (0) 2023.02.19
[programmers] 외톨이 알파벳  (0) 2023.02.16
[programmers] 호텔 대실  (0) 2023.02.12
[programmers] 둘만의 암호  (0) 2023.02.12