개인정보 수집 유효기간(프로그래머스_Lv1)
2023. 5. 28. 19:03ㆍ알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/150370
약관과 개인정보 수집 일자를 hashmap으로 분리한 뒤 적절한 형변환을 이용하여 현재 날짜와 비교시켜주었다.
년도의 차이와 월의 차이를 구하여 약관의 개월과 비교하여 파기해야할 개인정보의 번호를 구하였다.
import java.util.*;
class Solution {
public int[] solution(String today, String[] terms, String[] privacies) {
int count=0;
String[] con=new String[terms.length];
int[] today_i = new int[3];
String[][] pro_spl=new String[privacies.length][4];
int[] result = new int[privacies.length];
HashMap<String, String>term_sp=new HashMap<>();
String[] today_spl = today.split("\\.| ");
for(int i=0;i<3;i++){
today_i[i] = Integer.parseInt(today_spl[i]);
}
//0->년 1->월 2->일 3->약관
for(int i=0;i<terms.length;i++)
{
String[] sp=terms[i].split(" ");
term_sp.put(sp[0],sp[1]);
}
for(int i=0;i<privacies.length;i++)
{
String[] spl = privacies[i].split("\\.| ");
pro_spl[i] = spl;
}
for(int i=0;i<privacies.length;i++)
{
String ct = term_sp.get(pro_spl[i][3]); //6
int ct_i = Integer.parseInt(ct); //6
int Y = today_i[0]-(Integer.parseInt(pro_spl[i][0])); //1
int M = today_i[1]-(Integer.parseInt(pro_spl[i][1])); //-2
M=(Y*12)+M;
int D = Integer.parseInt(pro_spl[i][2]);
//개월수가 같을시에는 일자를 비교한다
if(M==ct_i)
{
if((today_i[2])>=D)
{
result[count]=i+1;
count++;
}
}
//현재 월와 개인정보 수집 일자의 월의 차이가 개월의 약관 개월보다
//클시에는 파기배열로 저장한다.
else if(M>ct_i)
{
{
result[count]=i+1;
count++;
}
}
}
int[] answer= new int[count];
for(int i=0;i<count;i++)
answer[i]=result[i];
return answer;
}
}
'알고리즘' 카테고리의 다른 글
플로이드 워셜 알고리즘(Floyd-Warshall) (0) | 2024.03.08 |
---|---|
의상(프로그래머스 Lv_2) (0) | 2023.06.26 |
전화번호목록(프로그래머스_Lv2) (1) | 2023.06.09 |
폰켓몬(프로그래머스_Lv1) (0) | 2023.05.29 |