KaKao blind test 2023 -개인정보 수집 유효기간

ddd·2023년 6월 6일
0

알고리즘 기출

목록 보기
1/22
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;

class Solution {
    public int[] solution(String today, String[] terms, String[] privacies) {
        int todayDate = getDays(today);
        
        // 정책 Map에 추가
        Map<String,Integer> option = new HashMap<>();
        for(String term : terms){
            String[] data = term.split(" ");
            option.put(data[0], Integer.parseInt(data[1]));
        }
        
        List<Integer> tmpAns = new ArrayList<>();
        System.out.println("today "+String.valueOf(todayDate));
        for(int i=0; i<privacies.length; i++){
            String[] curData = privacies[i].split(" ");
            
            int cur = getDays(curData[0]) + getDiff(option.get(curData[1]));
            System.out.println(cur);
            if(todayDate>=cur){
                tmpAns.add(i+1);
            }
        }
        
        int[] ans = new int[tmpAns.size()];
        for(int i=0; i<ans.length; i++){
            ans[i] = tmpAns.get(i);
        }
        return ans;
    }
    public int getDays(String date){
        String[] data = date.split("\\.");
        int[] dateDays = new int[]{28*12,28,1};
        int res = 0;
        for(int i=0;i<3;i++){
            int diff = Integer.parseInt(data[i])*dateDays[i];
            System.out.println("func get Days "+data[i]+" "+dateDays[i]+" "+diff);
            res+=diff;
        }
        return res;
    }
    public int getDiff(int month){
        return month*28;
    }
}

String.split("\.") -> 정규 표현식에서 .표현 하는 방법 \.
String.split(".") -> 임의의 한 문자를 기준으로 split한다.
HashMap.put(key,val) -> 값 저장
HashMap.get(key) -> 값 읽기

profile
Pragmatic, Productive, Positivist

0개의 댓글

Powered by GraphCDN, the GraphQL CDN