728x90
반응형
2023.01.30
코테 문제풀이 25주차 01번 문제
문제
접근방법
① Calendar 객체를 사용해 Stirng타입의 날짜 데이터를 변환해 계산
풀이
접근방법 : ①
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Date;
import java.util.List;
import java.util.Map;
class Solution {
public int[] solution(String today, String[] terms, String[] privacies) {
return personalInfoCollectionExpireDate(today, terms, privacies);
}
/**
* 개인정보수집유효기간
* @param today 온르 날짜
* @param terms 약관 정보
* @privacies 개인정보 수집
* @return 파기해야 할 개인정보의 번호
*/
public static int[] personalInfoCollectionExpireDate(String today, String[] terms, String[] privacies) {
/*
* @Desc
* 1.약관정보를 Map으로 관리한다.
* 2.privacies의 일자에 약관 정보 Map에 담긴 유효 개월 수를 더한다.
* 3.Calendar, Date 객체를 사용해 유효 기간이 지났는지 체크한다.
* 4.만료된 개인정보 수집 배열의 인덱스에 +1을 한 뒤, 고정배열에 담아 리턴한다.
*/
// Instance
Map<String, Integer> termMap = new HashMap<>();
List<Integer> list = new ArrayList<>();
for (String str: terms) {
String[] split = str.split(" ");
termMap.put(split[0], Integer.parseInt(split[1]));
}
for (int i=0; i<privacies.length; i++) {
String str = privacies[i];
String[] split = str.split(" ");
int year = Integer.parseInt(split[0].split("[.]")[0]);
int month = Integer.parseInt(split[0].split("[.]")[1]);
int date = Integer.parseInt(split[0].split("[.]")[2]);
Calendar calendar = Calendar.getInstance();
calendar.set(year, month-1, date);
calendar.add(Calendar.MONTH, termMap.get(split[1]));
Calendar toDateCalendar = Calendar.getInstance();
String[] todaySplit = today.split("[.]");
toDateCalendar.set(Integer.parseInt(todaySplit[0]),Integer.parseInt(todaySplit[1])-1,Integer.parseInt(todaySplit[2]));
boolean expireYn = toDateCalendar.getTimeInMillis() - calendar.getTimeInMillis() >= 0 ? true : false;
if (expireYn)
list.add(i+1);
}
// Output Instance
int[] answer = new int[list.size()];
for (int i=0; i<list.size(); i++)
answer[i] = list.get(i);
return answer;
}
}
|
cs |
결과
주의사항
① 없음
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[코테/JAVA] 연습문제 : 달리기 경주 (0) | 2023.04.17 |
---|---|
[코테/JAVA] 2022 KAKAO TECH INTERNSHIP : 성격 유형 검사하기 (0) | 2023.01.30 |
[코테/JAVA] 스택/큐 : 올바른 괄호 (2) | 2023.01.05 |
[코테/JAVA] 2022 KAKAO BLIND RECRUITMENT : 주차 요금 계산 (0) | 2022.12.29 |
[코테/JAVA] 월간 코드 챌린지 시즌2 : 2개 이하로 다른 비트 (0) | 2022.12.24 |
댓글