import java.util.*;

class Solution {
    public int[] solution(String today, String[] terms, String[] privacies) {
        today = today.replace(".",",");
        String[] todate = today.split(",");
        
        Map<String,String> map = new HashMap<>();
        for(String t : terms)
        {
            String[] terme = t.split(" ");
            map.put(terme[0],terme[1]);
        }        
        Map<Integer,Integer> cntMap = new HashMap<>();
        List<Integer> list = new ArrayList<>();
        int cnt = 0 ;
        for(String p : privacies)
        {
            cnt++;
            p = p.replace(" ",".");
            p = p.replace(".",",");
            String[] pdate = p.split(",");                       
            int MM = Integer.valueOf(pdate[1]);
            int YYYY = Integer.valueOf(pdate[0]);
            int addMM = Integer.valueOf(map.get(pdate[3]));
            MM = MM + addMM;
            if(MM>12)
            {
                
                if(MM%12!=0)
                {
                    YYYY = YYYY+MM/12;
                    MM = MM%12;
                }
                else{
                    YYYY = (YYYY+MM/12) - 1;
                    MM = 12;
                }               
            } 
            if(Integer.valueOf(todate[0])>YYYY)
            {
               list.add(cnt);
            }
            else if(Integer.valueOf(todate[0])==YYYY)
            {
                if(Integer.valueOf(todate[1])>MM)
                {
                    list.add(cnt);
                }
                else if(Integer.valueOf(todate[1])==MM)
                {
                    if(Integer.valueOf(todate[2])>=Integer.valueOf(pdate[2]))
                    {
                        list.add(cnt);
                    }
                }
            }       
        }
        
        int[] answer = new int[list.size()];
        for(int i = 0 ; i<answer.length ; i ++)
        {
            answer[i] = list.get(i);
        }
        
        return answer;
    }
}

 

2023 KAKAO BLIND RECRUITMENT 개인정보 수집 유효기간 문제 

 

풀면서 문제가 재밌다는 생각도 들었고, 실제로 이런부분이 쓰이겠다 라는 생각이 들어서 더 풀어보고 싶었던 문제였다.

다만 나는 Oracle에서 SQL로 주로 썼을 부분이라 뭔가, Java로 풀어서 제한사항등을 고려하는게 더 재밌었다.

Date형식으로도 풀어낼 수 있을 것 같았으나 아예 split으로 끊어서 숫자로 처리해버리는게 더 일목요연할 것 같아서

생각보다 손 쉽게 풀었다. 아 사례 17번에서 안넘어갔었는데 혹시나 해서 간과한 부분을 고치니 바로 PASS!

 

코딩테스트 풀면서 느낀게 사람들의 정답률과 상관없이 쫄지말고 덤벼봐야겠단 생각이 든다. 나도 허접떼기는 아님!ㅋ흫ㅎㅋㅇ헹ㅎ힣ㅎ

'ProgrammersCodingTest' 카테고리의 다른 글

프로그래머스_완주하지 못한 선수  (0) 2023.04.17
프로그래머스_옹알이  (0) 2023.04.17
코딩테스트_분수의덧셈  (0) 2023.04.17