: 매일 저녁, 하루를 마무리하며 작성 !
: ⭕ 지식 위주, 학습한 것을 노트 정리한다고 생각하고 작성하면서 머리 속 흩어져있는 지식들을 정리 !
첫 번째 개인정보는 A약관에 의해 2021년 11월 1일까지 보관 가능하며, 유효기간이 지났으므로 파기해야 할 개인정보입니다.
두 번째 개인정보는 B약관에 의해 2022년 6월 28일까지 보관 가능하며, 유효기간이 지나지 않았으므로 아직 보관 가능합니다.
세 번째 개인정보는 C약관에 의해 2022년 5월 18일까지 보관 가능하며, 유효기간이 지났으므로 파기해야 할 개인정보입니다.
네 번째 개인정보는 C약관에 의해 2022년 5월 19일까지 보관 가능하며, 유효기간이 지나지 않았으므로 아직 보관 가능합니다.
따라서 파기해야 할 개인정보 번호는 [1, 3]입니다.
오늘 날짜를 의미하는 문자열 today, 약관의 유효기간을 담은 1차원 문자열 배열 terms와 수집된 개인정보의 정보를 담은 1차원 문자열 배열 privacies가 매개변수로 주어집니다. 이때 파기해야 할 개인정보의 번호를 오름차순으로 1차원 정수 배열에 담아 return 하도록 solution 함수를 완성해 주세요.
import java.util.*;
class Solution {
public int[] solution(String today, String[] terms, String[] privacies) {
StringTokenizer st;
Map<String, Integer> term = new HashMap<>();
for(int i=0;i<terms.length;i++){
st = new StringTokenizer(terms[i]);
term.put(st.nextToken(), Integer.parseInt(st.nextToken())*28);
}
int days = getDays(today);
List<Integer> list = new ArrayList<>();
int idx = 1;
for(String privacy:privacies){
st = new StringTokenizer(privacy," ");
int pdays = getDays(st.nextToken());
if(days-pdays >= term.get(st.nextToken())){
list.add(idx);
}
idx++;
}
int[] answer = new int[list.size()];
for(int i=0;i<list.size();i++){
answer[i] = list.get(i);
}
return answer;
}
public int getDays(String date){
StringTokenizer st = new StringTokenizer(date,".");
int year = Integer.parseInt(st.nextToken());
int month = Integer.parseInt(st.nextToken());
int day = Integer.parseInt(st.nextToken());
int days = (year-1)*12*28 + (month-1)*28 + day;
return days;
}
}