반응형
package Programmers;
import java.time.LocalDate;
import java.util.*;
public class 개인정보수집유효기간 {
public static void main(String[] args){
개인정보수집유효기간 T = new 개인정보수집유효기간();
String today = "2021.12.08";
String[] terms = {"A 18"};
String[] privacies = {"2020.06.08 A"}; //21.12.08
T.solution(today, terms, privacies);
}
public int[] solution(String today, String[] terms, String[] privacies) {
int[] answer = {};
HashMap<String, Integer> termsMap = new HashMap<>();
String[] todayArr = today.split("\\.");
LocalDate parseToday = LocalDate.of(Integer.parseInt(todayArr[0]), Integer.parseInt(todayArr[1]), Integer.parseInt(todayArr[2]));
for (String s: terms) {
String[] tempS = s.split(" ");
termsMap.put(tempS[0], Integer.parseInt(tempS[1]));
}
List<Integer> tempAnswer = new ArrayList<>();
for (int i = 0; i < privacies.length; i++) {
String[] privaciesS = privacies[i].split(" ");
//계약날짜
String privaciDt = privaciesS[0];
String[] privaciArr = privaciDt.split("\\.");
//등급
String privaciGrade = privaciesS[1];
LocalDate compareDt = LocalDate.of(Integer.parseInt(privaciArr[0]) , Integer.parseInt(privaciArr[1]) , Integer.parseInt(privaciArr[2])).plusMonths(termsMap.get(privaciGrade));
int rsInt = parseToday.compareTo(compareDt); // 이전날짜일경우 -1
if(rsInt >= 0){ // parseToday보다 클경우 파기
tempAnswer.add(i + 1);
}
}
answer = new int[tempAnswer.size()];
for (int i = 0; i < tempAnswer.size(); i++) {
answer[i] = tempAnswer.get(i);
}
return answer;
}
}
1. terms 배열 Hashmap 에 넣고 사용
2. privacies 배열 하나씩 돌면서 LoacalDate 사용해서 plusMonths 메서드 사용해서 값 비교한다.
3. CompareDt 가 현재 날짜보다 작으면 파기시킨다.
※
- LocalDate 에다가 Month 더할때 plusMonth 안쓰고 LocalDate.of(year +, Month + , .... ) 더해서 때려박아서 1-12 까지만 넣어달래서 직접 계산해서 넣어주는 ㅂㅅ 짓을함.
- 직접 날짜 때려박아서 계산하면 테스트케이스 1, 17 실패 반례 찾아서 해결 (년도 월 계산을 ㅂㅅ 같이함)
- split 할때 "\\." 역슬래쉬 안하면 Dot 파싱이 안됨.
쉬운문제가지고 ㅂㅅ짓을 많이함
반응형
'기타 > 알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 이모티콘할인행사 (java) - dfs 탐색 (0) | 2023.04.26 |
---|---|
[알고리즘] 프로그래머스 -택배 배달과 수거하기 (Java) (0) | 2023.04.25 |
[알고리즘] 프로그래머스 - 숫자변환하기 (BFS, Java) (0) | 2023.04.20 |
[알고리즘] 프로그래머스 무인도여행 DFS 풀이 (자바,java) (1) | 2023.04.20 |
[알고리즘] 프로그래머스 무인도여행 DFS 풀이 (자바,java) (0) | 2023.04.18 |