반응형
https://school.programmers.co.kr/learn/courses/30/lessons/150370
내 코드
def todict(a):
dictionary = {}
for i in a:
x, y = i.split()
dictionary[x] = int(y)*28
return dictionary
def solution(today, terms, privacies):
cnt = 1
answer = []
type_dict = todict(terms)
today_to_day = (int(today[:4])*12*28) + int(today[5:7])*28 + int(today[8:])
for i in privacies:
x, y = i.split()
day_all = (int(x[:4])*12*28) + int(x[5:7])*28 + int(x[8:])
result = day_all + type_dict[y]
if result <= today_to_day:
answer.append(cnt)
cnt += 1
return answer
Review
처음 문제를 접근 했을때는 파이썬 모듈인 datetime으로 접근 했었다.
하지만 month 처리를 할 때 조건문을 넣어 나누기 연산하는 게 복잡하여
년, 달, 일 을 -> 일수로 다 변경하여 숫자 비교를 하는 식으로 해결을 하였다.
문제 해결을 위한 핵심은 모든 달이 28일로 고정이 된다는 점 이였다.
그러면 쉽게 일수로 바꿔서 계산이 가능하다.
예를 들어 2021년 5월 19일은
2021 * 12 * 28 + 5 * 28 + 19 로 계산을 할수 있기 때문에 쉽게 비교를 통해 문제 해결을 했다.
todict 함수는 terms = ['A 6', 'B 12', 'C 3']를
일수로 바꿔 정리한 딕셔너리 형태로 바꾸는 함수이다. [ 'A 6', 'B 12', 'C 3' ] --> { 'A':168, 'B':336, 'C':84 }
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 괄호 변환 파이썬 (0) | 2023.05.30 |
---|---|
[프로그래머스] 비밀지도 파이썬 (0) | 2023.04.05 |
[프로그래머스] 평행 파이썬 (4) | 2023.02.01 |
[프로그래머스] 옹알이 (1) 파이썬 (0) | 2023.02.01 |
[프로그래머스] 두 큐 합 같게 만들기 파이썬 (0) | 2023.01.30 |