오늘 작성한 알고리즘 문제는 개인정보 보호기간에 대한 문제였다.
String -> LocalDate
가장 먼저 시작한 문제는 today가 제공되는데 반해서 데이터의 형식이 "yyyy.MM.dd" 형식의 String으로 제공한다는 점이였다. 기본 LocalDate 타입의 형태는 "yyyy-MM-dd" 타입이기 때문에 LocalDate.parse(today)
를 사용하면 런타입 오류가 발생하였다.
Why error?
무엇으로 인하여 오류가 생기는가 하면 변환하려는 String의 형태 때문였다. 위에서 언급했듯이 "." 을 기준으로 구분하기 때문에 "-" 형태로 구분하는 LocalDate와 형태가 달라 바로변환하는 것이 불가능 하기 때문이다. 그렇다면 어떤 방식을 이용하여야 할까?
DateTimeFormatter
그렇다면 LocalDate가 인식하게 형태를 만들어줘야 한다. Java가 제공하는 클래스인 DateTimeFormatter를 이용하여 그 형태를 지정하여 인식가능하도록 만드는 것을 아래와 같이 구현하였다.
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
LocalDate date = LocalDate.parse(today,dateTimeFormatter);
그 이후 문제풀이
그 이후는 간단하였다. Map 자료구조를 통하여 항목별로 유효기간을 저장하고 plusMonth()메소드를 통해 기간을 더해 보관 종료알자를 구한 후 그 날짜를 기준으로 isAfter(today) 를 통해 정답인 부분을 구하는 것으로 문제를 해결하엿다.
'Spring' 카테고리의 다른 글
Java 알고리즘 학습 (0) | 2023.12.04 |
---|---|
알고리즘 풀이 - 자료구조 (0) | 2023.11.27 |
기능 구현 - 비회원 기능 (0) | 2023.11.08 |
트러블 슈팅 - 중복 저장 문제 (0) | 2023.11.06 |
항해 99 - 트러블 슈팅 Optional(Likes) (1) | 2023.10.25 |