ALGORITHM

[JAVA] 프로그래머스 - 개인정보 수집 유효기간

연듀 2023. 3. 1. 09:04

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

 

프로그래머스

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

programmers.co.kr

   
import java.util.*; 

class Solution { 
    public int convertToDate(String day){
        return Integer.parseInt(day.substring(0, 4)) * 12 * 28 + 
                        Integer.parseInt(day.substring(5, 7)) * 28 + 
                        Integer.parseInt(day.substring(8)); 
    }
    
    public int[] solution(String today, String[] terms, String[] privacies) {

        List<Integer> answer = new ArrayList<>(); 

        int i=0; 
        for(String p : privacies){
            i++; 
            String[] split = p.split(" "); 
            int month = 0; 
            for(String t : terms){
                  if(t.substring(0, 1).equals(split[1])){
                    month = Integer.parseInt(t.substring(2));
                    break;
                }
            }
            if((month * 28)+convertToDate(split[0]) <= convertToDate(today)){   // 개인정보 수집일짜 + 유효기간 < 오늘날짜 면 파기해야함
                answer.add(i); 
            }
        }
        return answer.stream().mapToInt(Integer::intValue).toArray(); 
    }
}

 

privacies[i]의 알파벳과 일치하는 terms[i]알파벳을 구해 유효기간이 몇달인지 찾는다.

개인정보 수집일짜 + 유효기간 < 오늘날짜면 파기해야 한다.