문제
문제 풀이
매달이 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 |