Coding Planet
level1. ๊ฐ์ธ์ ๋ณด ์์ง ์ ํจ๊ธฐ๊ฐ Java(2023 KAKAO BLIND RECRUITMENT) ๋ณธ๋ฌธ
๐ ์ฝ๋ฉํ
์คํธ/ํ๋ก๊ทธ๋๋จธ์ค
level1. ๊ฐ์ธ์ ๋ณด ์์ง ์ ํจ๊ธฐ๊ฐ Java(2023 KAKAO BLIND RECRUITMENT)
jhj.sharon 2023. 8. 21. 23:37๋ฐ์ํ
โจ ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/150370#
๐ป์ฝ๋
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
class Solution {
public int[] solution(String today, String[] terms, String[] privacies) {
//1. ์ฝ๊ด์ ์ ํจ๊ธฐ๊ฐ์ ๋งคํํ๋ค.
// - termMap : ["A", "6"]
Map<String, Integer> termMap = new HashMap<>();
for(String term : terms){
String [] parts = term.split(" ");
termMap.put(parts[0], Integer.parseInt(parts[1]));
}
//2. ๊ฐ ๊ฐ์ธ์ ๋ณด์ ์ ํจ๊ธฐ๊ฐ ์ข
๋ฃ์ผ์ ๊ณ์ฐํ๋ค.
List<Integer> expiredList = new ArrayList<>();
//์ ๊ทํํ์ ๊ตฌ๋ถ์
String [] todayParts = today.split("\\.");
int todayYear = Integer.parseInt(todayParts[0]);
int todayMonth = Integer.parseInt(todayParts[1]);
int todayDay = Integer.parseInt(todayParts[2]);
for(int i =0; i <privacies.length; i++){
String[] info = privacies[i].split(" ");
String[] dateParts = info[0].split("\\.");
int year = Integer.parseInt(dateParts[0]);
int month = Integer.parseInt(dateParts[1]);
int day = Integer.parseInt(dateParts[2]);
int calcYear = year;
int calcMonth = month + termMap.get(info[1]);
int calcDay = day;
while (calcMonth > 12) {
calcYear += 1;
calcMonth -= 12;
}
if (calcYear < todayYear || (calcYear == todayYear && calcMonth < todayMonth) ||
(calcYear == todayYear && calcMonth == todayMonth && calcDay <= todayDay))
{
expiredList.add(i + 1);
}
}
int[] result = new int[expiredList.size()];
for(int i =0; i<expiredList.size(); i++){
result[i] = expiredList.get(i);
}
return result;
}
}
๐ฉ๐ป ํ์ด ๋ฐฉ๋ฒ
- terms ๋ฐฐ์ด์ ํตํด ๊ฐ ์ฝ๊ด์ ์ ํจ๊ธฐ๊ฐ์ ๋งคํํ๋ค.
- ๊ฐ ๊ฐ์ธ์ ๋ณด์ ์ ํจ๊ธฐ๊ฐ ์ข ๋ฃ์ผ์ ๊ณ์ฐํ๋ค.
- ์ค๋ ๋ ์ง์ ๋น๊ตํ์ฌ ์ ํจ๊ธฐ๊ฐ์ด ์ง๋ ๊ฐ์ธ์ ๋ณด๋ฅผ ์ฐพ๋๋ค.
- ์ ํจ๊ธฐ๊ฐ์ด ์ง๋ ๊ฐ์ธ์ ๋ณด์ ๋ฒํธ๋ฅผ ๋ฐํํ๋ค.
๐ ๋๋์
- ์๊ฐ ์์ฒญ ๊ฑธ๋ฆฌ๊ณ ์ค๋ฅ๋ ๋ง์์ ใ ๊ตฌ๊ธ๋งํด์ ํํธ ๋ณด๊ณ ๊ฒจ์ฐ ํ์๋ค..
- String[ ] todayParts = today.split("\\.") : ์ ์ ๊ตฌ๋ถ์๋กํด์ split์ ์ฐ๋ ค๊ณ ํ๋๋ฐ split ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ์ธ์๋ก ์ ๋ฌ๋๋ ๋ฌธ์์ด์ ์ ๊ทํํ์์ด๊ธฐ ๋๋ฌธ์ ์ด์ค์ผ์ดํ๋ฅผ ํด์ผํ๋ค. ํ์ง๋ง ๋ฐฑ์ฌ๋์ ์์ฒด๋ ์ด์ค์ผ์ดํ ๋ฌธ์์ด๋ฏ๋ก ๋ฐฑ์ฌ๋์๋ฅผ ๋ฌธ์์ด์ ํฌํจ์ํค๋ ค๋ฉด ๋ ๋ฒ ๋ฐ๋ณตํด์ผํ๋ค..! ์ฆ, '.'์ ์ด์ค์ผ์ดํ ํ๋ ๋ฌธ์์ด์ ๋ค์ ์ด์ค์ผ์ดํ ํ๋ ๊ฒ์ด๋ค(??)
- ์๋ฐ ๋ฌธ์์ด์์ ๋ฐฑ์ฌ๋์: \\
- ์ ๊ท ํํ์์์ ์ : \.ใฑ
๋ฐ์ํ
'๐ ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
level1. ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ๋ฌธ์์ด Java (Integer.parseInt() ๋ฐํ์ ์ค๋ฅ) (0) | 2023.08.25 |
---|---|
level1. ์ผ์ด์ฌ Java (0) | 2023.08.24 |
level1. ์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ Java (0) | 2023.08.21 |
level1.๋๋จธ์ง๊ฐ 1์ด ๋๋ ์ ์ฐพ๊ธฐ java (0) | 2023.04.24 |
level 1. x๋งํผ ๊ฐ๊ฒฉ์ด ์๋ n๊ฐ์ ์ซ์ / java (0) | 2023.03.29 |
Comments