개인정보 수집 유효기간

문제


문제 풀이

매달이 28일로 고정이 되어 있는 문제로 년, 월, 일을 일 수로 변환하고 그 변환한 값과 약정기간을 비교하여 약정기간을 넘었을 때 결과로 반환하면 되는 방식으로 처리 하였음. 


나의 답안

public static int[] solution(String today, String[] terms, String[] privacies) {
    ArrayList<Integer> list = new ArrayList<>();
    Map<String, Integer> termsMap = new HashMap<>();

    String[] todayArr = today.split("[.]");

    int year = Integer.parseInt(todayArr[0]);
    int month = Integer.parseInt(todayArr[1]);
    int day = Integer.parseInt(todayArr[2]);

    for (int i = 0; i < terms.length; i++) {
        String[] s = terms[i].split(" ");
        termsMap.put(s[0], Integer.parseInt(s[1]));
    }

    for (int i = 0; i < privacies.length; i++) {
        String[] s = privacies[i].split(" ");
        String[] split = s[0].split("[.]");

        int term = termsMap.get(s[1]) * 28;
        int result = (year - Integer.parseInt(split[0])) * 28 * 12
                + (month - Integer.parseInt(split[1])) * 28
                + (day - Integer.parseInt(split[2]));
        if (result >= term) {
            list.add(i + 1);
        }

    }
    return list.stream().mapToInt(Integer::intValue).toArray();
}

'Programmers 문제풀이 > Lv.1' 카테고리의 다른 글

바탕화면 정리  (0) 2023.03.29
신고 결과 받기  (0) 2023.03.29
대충 만든 자판  (0) 2023.03.28
둘만의 암호  (0) 2023.03.27
성격 유형 검사하기  (0) 2023.03.27