728x90
https://school.programmers.co.kr/learn/courses/30/lessons/150370
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. Java
import java.util.*;
import java.text.SimpleDateFormat;
class Solution {
public int[] solution(String today, String[] terms, String[] privacies) throws Exception {
int[] answer = {};
Map<String, Integer> terms_info = new HashMap<>();
for ( String term : terms ) {
String[] t = term.split(" ");
terms_info.put(t[0], Integer.parseInt(t[1]));
}
List<Integer> ans = new ArrayList<>();
for ( int i = 0; i < privacies.length; ++i ) {
String[] p = privacies[i].split(" ");
String dt = p[0];
String term = p[1];
SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
Calendar cal = Calendar.getInstance();
Date date = format.parse(dt);
cal.setTime(date);
cal.add(Calendar.MONTH, terms_info.get(term));
String due_dt = format.format(cal.getTime());
if ( today.compareTo(due_dt) >= 0 ) {
ans.add(i+1);
}
}
answer = new int[ans.size()];
for ( int i = 0; i < ans.size(); ++i ) {
answer[i] = ans.get(i);
}
return answer;
}
}
※ Java Class - SimpleDateFormat (https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)
2. Python
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
def solution(today, terms, privacies):
answer = []
terms_info = {}
for term in terms :
t = term.split(" ")
terms_info[t[0]] = int(t[1])
for i in range(len(privacies)) :
p = privacies[i].split(" ")
dt = p[0]
term = p[1]
date = datetime.strptime(dt, "%Y.%m.%d")
due_dt = (date + relativedelta(months=terms_info[term])).strftime("%Y.%m.%d")
if today >= due_dt :
answer.append(i+1)
return answer
# 일 더하기 : date + timedelta(days=10)
# 월 더하기 : date + relativedelta(months=10)
# 년 더하기 : date + relativedelta(years=10)
반응형
'코딩 문제 풀기 ( Algorithm problem solving ) > 프로그래머스 ( Programmers )' 카테고리의 다른 글
[프로그래머스(Programmers)][Java,Python] (Lv1) 공원 산책 (0) | 2025.03.24 |
---|---|
[프로그래머스(Programmers)][Java,Python] (Lv1) 달리기 경주 (0) | 2025.03.24 |
[프로그래머스(Programmers)][Java,Python] (Lv1) 바탕화면 정리 (0) | 2025.03.21 |
[프로그래머스(Programmers)][Java,Python] (Lv1) 성격 유형 검사하기 (2022 KAKAO TECH INTERNSHIP) (0) | 2025.03.21 |
[프로그래머스(Programmers)][Java,Python] (Lv1) 데이터 분석 (PCCE 기출문제 10번) (0) | 2025.03.21 |