문제요약
나의 코드 및 설명
- 오늘 날짜를 일자로 환산하여 저장해두고, 약관에 따라 개인정보 수집 유효기간이 끝나는 날짜를 환산한 값과 비교하여 유효기간이 만료되었는지를 확인한다.
- 약관 종류에 따른 유효기간은 딕셔너리를 활용하여 저장한다.
def solution(today, terms, privacies):
answer = []
today = today.split(".") #문자열 형태임(오늘날짜)
today_day = int(today[0])*28*12 + int(today[1])*28 + int(today[2]) #날짜를 일수로 변환
#약관 종류 : 유효기간 -> 딕셔너리 저장
d = {}
for term in terms:
term = term.split()
d[term[0]] = int(term[1])
for i in range(len(privacies)):
temp = privacies[i].split() #["2021.05.02", "A"]
date = temp[0].split(".") #["2021", "05", "02"]
case = temp[1] #약관 유형
date_day = int(date[0])*28*12 + int(date[1])*28 + int(date[2]) + d[case] * 28
if date_day <= today_day:
answer.append(i+1)
return answer
피드백
이번 문제도 복잡해보였는데 날짜를 일자로 환산하는 아이디어를 떠올려서 비교적 간단하게 문제를 해결할 수 있었다. 또, 이전에string.split("문자") 을 통해 특정 문자를 기준으로 문자열을 나누는 코드를 배웠는데 매우 유용하게 사용하고 있다. 여러 기업, 사이트의 코딩테스트 대비 문제를 풀어보는 것이 참 중요한 것 같다. 백준에는 백준에서 자주 쓰는 함수, 알고리즘이 있고, 프로그래머스에는 프로그래머스에서 자주 쓰는 함수, 알고리즘이 있듯이 각 기업, 사이트마다 주로 쓰이는 함수나 알고리즘이 있어서 최대한 다양한 환경에서 다양한 경험을 해야겠다.
'Programmers > Lv1' 카테고리의 다른 글
[프로그래머스] 문자열 내 마음대로 정렬하기 (Lv1) (0) | 2023.07.24 |
---|---|
[프로그래머스] 신규 아이디 추천 (Lv1) / 2021 카카오 블라인드 채용 (0) | 2023.06.16 |
[프로그래머스] 신고 결과 받기 (Lv1) / 2022 카카오 블라인드 채용 (0) | 2023.06.14 |