본문 바로가기
Algorithm/구현

[프로그래머스 lv 1] 개인정보 수집 유효기간

by HANNI하니 2023. 5. 16.

사용 언어 - Python3

문제 - 개인정보 수집 유효기간

 

프로그래머스

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

programmers.co.kr

 

정답

defaultdict 이용한 딕셔너리 구현 (정답 맞춘 여부 X)

today 연,월,일로 인덱싱

terms 유형:개월 dic로 저장

privacies 연,월,일 인덱싱 저장

두 연,월,일 비교!

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

    year,month,day = int(today[0:4]),int(today[5:7]),int(today[8:]) #오늘의 연, 월, 일
    
    for term in terms:
        case = term[0] # 유형
        time_dic[case] = int(term[2:]) # 유형별 기간 dic 저장

    for i in range(len(privacies)):
        data, case = privacies[i].split()
        p_year, p_month, p_day = int(data[0:4]),int(data[5:7]),int(data[8:10]) # 시간
        
        p_month += time_dic[case] #유형별 기간 p_month에 추가해주기
        
        while p_month > 12: # 12월 넘으면 month-12, year+1
            p_month -= 12
            p_year += 1
        
        # 유효기간이 today의 연,월,일보다 작아야 보관가능하다. +1
        if p_year > year:
            continue
            
        elif p_year == year:
            if p_month > month:
                continue
            elif p_month == month:
                if p_day > day:
                    continue
                    
        answer.append(i+1) # 인덱스 0부터 시작하기 때문에
        
    return answer

 

 

레퍼런스

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글