개인정보 수집 유효기간(프로그래머스_Lv1)

2023. 5. 28. 19:03알고리즘

https://school.programmers.co.kr/learn/courses/30/lessons/150370

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

약관과 개인정보 수집 일자를 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;
    }
}