본문 바로가기
개발 지식

[코테][2023 KAKAO BLIND RECRUITMENT]개인정보 수집 유효 기간

by youuuu_h 2024. 2. 28.
1. 문제 링크 

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

 

프로그래머스

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

programmers.co.kr

 

2. 나의 풀이
from datetime import datetime 
from dateutil.relativedelta import relativedelta

def solution(today, terms, privacies):
    today = datetime.strptime(today,'%Y.%m.%d')
    answer = []
    
    for i in range(len(privacies)):
        period = 0
        
        privacy = privacies[i].split()
        date = datetime.strptime(privacy[0],'%Y.%m.%d')
        type = privacy[1]
        
        for j in range(len(terms)):
            term = terms[j].split()
            if term[0]==type:
                period = int(term[1])
                break
                    
        if period!=0 :
            if today >= date + relativedelta(months=period):
                answer.append(i+1)
            
    return answer​

 

3. 다른 사람의 풀이 
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

 

 

  •  map ()
map(function, iterable)
  • function : 각 요소에 적용할 함수 
  • iterable : 함수를 적용할 데이터 집합 

 

map() 함수는 iterable의 각 요소에 대해 funciton 함수를 적용한 결과를 새로운 iterator로 반환한다. 이때, function 함수는 각 요소를 인자로 받아서 처리하며, 함수의 반환값이 새로운 iterator의 요소가 된다. 

 

  • enumerate()
enumerate(순서가 있는 객체, start=0 )
  • enumerate() 함수는 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받았을 때, 인덱스와 값을 포함하여 리턴
  • for문과 함께 자주 사용됨
  • 인덱스와 값을 동시에 접근하면서 루프를 돌리고 싶을 때 사용 
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
print(fruits) 
#['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']

print(list(enumerate(fruits))) 
#[(0, 'orange'), (1, 'apple'), (2, 'pear'), (3, 'banana'), (4, 'kiwi'), (5, 'apple'), (6, 'banana')]