import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
class Solution {
public int[] solution(String today, String[] terms, String[] privacies) {
int todayDate = getDays(today);
// 정책 Map에 추가
Map<String,Integer> option = new HashMap<>();
for(String term : terms){
String[] data = term.split(" ");
option.put(data[0], Integer.parseInt(data[1]));
}
List<Integer> tmpAns = new ArrayList<>();
System.out.println("today "+String.valueOf(todayDate));
for(int i=0; i<privacies.length; i++){
String[] curData = privacies[i].split(" ");
int cur = getDays(curData[0]) + getDiff(option.get(curData[1]));
System.out.println(cur);
if(todayDate>=cur){
tmpAns.add(i+1);
}
}
int[] ans = new int[tmpAns.size()];
for(int i=0; i<ans.length; i++){
ans[i] = tmpAns.get(i);
}
return ans;
}
public int getDays(String date){
String[] data = date.split("\\.");
int[] dateDays = new int[]{28*12,28,1};
int res = 0;
for(int i=0;i<3;i++){
int diff = Integer.parseInt(data[i])*dateDays[i];
System.out.println("func get Days "+data[i]+" "+dateDays[i]+" "+diff);
res+=diff;
}
return res;
}
public int getDiff(int month){
return month*28;
}
}
String.split("\.") -> 정규 표현식에서 .표현 하는 방법 \.
String.split(".") -> 임의의 한 문자를 기준으로 split한다.
HashMap.put(key,val) -> 값 저장
HashMap.get(key) -> 값 읽기