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
'🔍 알고리즘 > 프로그래머스 Python' 카테고리의 다른 글
[Python] 프로그래머스 178871. 달리기 경주 (Lv.1) (0) | 2023.06.20 |
---|---|
[Python] 프로그래머스 150369. 택배 배달과 수거하기 (Lv.2) (0) | 2023.01.05 |
[Python] 프로그래머스 133499. 옹알이2 (Lv.1) (0) | 2022.11.02 |
[Python] 프로그래머스 133502. 햄버거 만들기 (Lv.1) (0) | 2022.11.02 |
[Python] 프로그래머스 12941. 최솟값 만들기 (Lv.2) (0) | 2022.10.25 |