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

 

프로그래머스

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

programmers.co.kr

 

2023 카카오 블라인드 1번 문제입니다. 

문자열 파싱과 dictionary 등의 자료구조를 사용하면 쉽게 풀리는 문제입니다.

 

저는 우선 각 약관별로 유효기간을 dictionary에 저장해놓고, 수집일자와 오늘 날자를 파싱해 정수형으로 변환해 비교해주었습니다. 다행히 한 달의 일수가 28일로 모두 같아 계산하기 쉬웠습니다. 

 

(예를들어 1년이 28 * 12 = 336일이므로 100년 1월 1일은 33601일이 됩니다.) 

 

 

**솔루션 수정**

2023.01.06 - 괄호를 잘못 묶었습니다. ^^;;

def solution(today, terms, privacies):
    answer = []
    termdict = {}
    
    for term in terms:
        t = term.split(' ')
        termdict[t[0]] = int(t[1]) * 28
        
    t = today.split('.')
    d = 28 * 12 * int(t[0]) + 28 * (int(t[1]) - 1) + int(t[2])
    
    for p in range(len(privacies)):
        pret = privacies[p].split(' ')
        t = pret[0].split('.')
        nd = 28 * 12 * int(t[0]) + 28 * (int(t[1]) - 1) + int(t[2])
        
        if termdict[pret[1]] + nd <= d:
            answer.append(p + 1)
        
    
    return answer
728x90

+ Recent posts