[프로그래머스] 개인정보 수집 유효기간 (파이썬) - Lv.1

서봉성·2023년 1월 7일
0

코딩테스트

목록 보기
12/27
post-thumbnail

문제

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

풀이방법

  • 문제의 조건을 꼼꼼하게 확인하여 하나도 빠짐없이 구현하는게 포인트
  • 약관의 종류를 딕셔너리 타입으로 저장
  • 각 privacies마다 날짜와 연도를 구하고 약관의 타입에 맞게 날짜를 더해준다
  • 각 날짜가 오늘보다 과거에 있으면 결과에 인덱스값을 넣는다.

코드

def solution(today, terms, privacies):
    answer = []
    term_dict={}
    year, month, day=map(int, today.split('.'))
    
    for term in terms:
        alphabet, number=term.split()
        term_dict[alphabet]=int(number)
    
    for i in range(len(privacies)):
        date, alphabet=privacies[i].split()
        d_year, d_month, d_day=map(int, date.split('.'))
        d_month+=term_dict[alphabet]
        while d_month>12:
            d_month-=12
            d_year+=1
        
        if d_year>year:
            continue
            
        elif d_year==year:
            if d_month>month:
                continue
                
            elif d_month==month:
                if d_day>day:
                    continue
                    
        answer.append(i+1)
        
    return answer
profile
OverStudy

0개의 댓글