๋ฌธ์ )
https://school.programmers.co.kr/learn/courses/30/lessons/150370
ํ์ด)
import java.util.*;
class Solution {
public int[] solution(String today, String[] terms, String[] privacies) {
List<Integer> arr = new ArrayList<>();
Map<Character, Integer> expiryDate = new HashMap<>();
// ์ฝ๊ด ์ ๋ณด ํ์ฑ
for (String s : terms) {
String[] split = s.split(" ");
char termType = split[0].charAt(0);
int month = Integer.parseInt(split[1]);
expiryDate.put(termType, month);
}
// ์ค๋ ๋ ์ง๋ฅผ ์ด ์ผ์๋ก ๋ณํ (๋
* 12 * 28 + ์ * 28 + ์ผ)
int todayDays = convertToDays(today);
for (int i = 0; i < privacies.length; i++) {
String s = privacies[i];
// ๊ฐ์ธ์ ๋ณด ์์ง ๋ ์ง์ ์ฝ๊ด ์ ํ ์ถ์ถ
String date = s.substring(0, 10);
char termType = s.charAt(11);
// ๋ง๋ฃ ๊ฐ์ ์ ๊ฐ์ ธ์ค๊ธฐ
int expiryMonths = expiryDate.get(termType);
// ์์ง ๋ ์ง๋ฅผ ์ด ์ผ์๋ก ๋ณํ ํ, ๋ง๋ฃ ๊ฐ์ ์๋ฅผ 28์ผ ๋จ์๋ก ์ถ๊ฐ
int expiryDateDays = convertToDays(date) + expiryMonths * 28;
// ์ค๋ ๋ ์ง์ ๋น๊ตํ์ฌ ๋ง๋ฃ ์ฌ๋ถ ํ์ธ
if (todayDays >= expiryDateDays) {
arr.add(i + 1);
}
}
return arr.stream().mapToInt(Integer::intValue).toArray();
}
// ๋ ์ง๋ฅผ ์ด ์ผ์๋ก ๋ณํํ๋ ํจ์
private int convertToDays(String date) {
int yyyy = Integer.parseInt(date.substring(0, 4));
int mm = Integer.parseInt(date.substring(5, 7));
int dd = Integer.parseInt(date.substring(8, 10));
return yyyy * 12 * 28 + mm * 28 + dd;
}
}
'์๊ณ ๋ฆฌ์ฆ > ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค) ์นดํซ ๋ฌธ์ ํ์ด (0) | 2025.03.06 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค) ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ ๋ฌธ์ ํ์ด (0) | 2025.02.21 |
ํ๋ก๊ทธ๋๋จธ์ค) ๋ฐํํ๋ฉด ์ ๋ฆฌ (0) | 2025.02.19 |
ํ๋ก๊ทธ๋๋จธ์ค) ์ฑ๊ฒฝ ์ ํ ๊ฒ์ฌํ๊ธฐ (0) | 2025.02.18 |
ํ๋ก๊ทธ๋๋จธ์ค) ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ (0) | 2025.02.17 |