[PRG] - 개인정보 수집 유효기간(Java)
프로그래머스
✅ 문제 제목 : 개인정보 수집 유효기간 - LV1
🔔 문제 유형 : 2023 KAKAO BLIND RECRUITMENT
💬 풀이 언어 : JAVA
⏱️ 풀이 시간 : 15분
🖇️ 문제 링크 : 프로그래머스 문제 링크
💬 문제 정리
문제는 링크를 통해 읽고 오시는 것을 추천드립니다!
약관 종류마다 유효 기간이 정해져있으며, 주어진 날짜를 기준으로 유효 기간이 지난 개인 정보는 파기가 된다.
⛔️ 주의 사항
- today는
"YYYY.MM.DD"
형태로 오늘 날짜를 나타낸다.
✏️ 문제 풀이
import java.util.HashMap;
import java.util.Map;
class Solution {
public static Map<String, Integer> termsMap = new HashMap<>();
public static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
public boolean isPassedDay(String today, LocalDate accessDay, String sort) {
LocalDate parseToday = LocalDate.parse(today, formatter);
return parseToday.isAfter(accessDay.plusMonths(termsMap.get(sort))) || parseToday.isEqual(accessDay.plusMonths(termsMap.get(sort)));
}
public int[] solution(String today, String[] terms, String[] privacies) {
List<Integer> answerList = new ArrayList<>();
for (String term : terms) {
String termSort = term.split(" ")[0];
int termMonth = Integer.parseInt(term.split(" ")[1]);
termsMap.put(termSort, termMonth);
}
for (int i = 0; i < privacies.length; i++) {
LocalDate accessDay = LocalDate.parse(privacies[i].split(" ")[0], formatter);
System.out.println(accessDay);
String termSort = privacies[i].split(" ")[1];
if (isPassedDay(today, accessDay, termSort)) {
answerList.add(i + 1);
}
}
int[] answer = new int[answerList.size()];
for (int i = 0; i < answerList.size(); i++) {
answer[i] = answerList.get(i);
}
return answer;
}
}
🤔 회고
실제로 카카오 코딩테스트를 보면서 마주친 문제이다.
조금 더 줄이고, 가독성 좋게 풀 수 있을 것 같은 문제라 코드를 수정해보는 시간을 갖는게 좋을 것 같다.
댓글남기기