https://school.programmers.co.kr/learn/courses/30/lessons/150370
import java.util.*;
import java.time.*;
class Solution {
public LocalDate func(int year, int month, int day, int terms){
LocalDate days = Year.of(year).atMonth(month).atDay(day);
return days.plusMonths(terms);
}
public int[] solution(String today, String[] terms, String[] privacies) {
int[] answer = {};
HashMap<String, Integer> hm = new HashMap();
String[] targetday = today.split("\\.");
LocalDate A = func(Integer.parseInt(targetday[0]), Integer.parseInt(targetday[1]), Integer.parseInt(targetday[2]), 0);
for(int i = 0; i<terms.length; i++){
String[] tmp = terms[i].split(" ");
hm.put(tmp[0], Integer.parseInt(tmp[1]));
}
for(int i = 0; i<privacies.length; i++){
String[] str = privacies[i].split(" ");
String type = str[1];
String[] days = str[0].split("\\.");
int year = Integer.parseInt(days[0]);
int month = Integer.parseInt(days[1]);
int day = Integer.parseInt(days[2]);
LocalDate B = func(year, month, day, hm.get(type));
System.out.println(A);
System.out.println(B);
if(A.isAfter(B)){
System.out.println(i+1);
}
}
return answer;
}
}
처음 생각한 방법 : Split을 사용해서 파싱하고, 각 파싱한 변수로 LocalDate 객체를 만들어서 isAfter을 사용해서 문제를 해결하려고함
Split 파싱할 때, " . " dot을 기준으로 하려했는데 그냥 점만 찍으면 안됨..
코드를 실행해봤는데 어떤건 맞고 어떤건 틀림, 아마 문제에서 한 달이 28으로 고정이라고 해서 LocalDate를 사용하면 안되나봐요 다시 풀어보자