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

์ •๋‹ต๋ฅ  65%

๐Ÿ“ ํ’€์ด 3 : LocalDate ํด๋ž˜์Šค

LocalDate.of(year, month, dayOfMonth)โœจ

import java.time.LocalDate;
class Solution {
// 2016๋…„ a์›” b์ผ์ด ๋ฌด์Šจ ์š”์ผ์ธ์ง€ ๋ฐ˜ํ™˜(SUN~SAT)
public String solution(int a, int b) {
/* ๋‚ ์งœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์š”์ผ ๋ฌธ์ž์—ด์˜ ์ฒซ 3๊ธ€์ž๋งŒ ์ถ”์ถœ */
return LocalDate.of(2016, a, b).getDayOfWeek().toString().substring(0, 3);
}
}

๐Ÿ“ ํ’€์ด 2 : Calendar ํด๋ž˜์Šค

Calendar cal = new Calendar...

import java.util.Calendar;
import java.util.Locale;
class Solution {
// 2016๋…„ a์›” b์ผ์ด ๋ฌด์Šจ ์š”์ผ์ธ์ง€ ๋ฐ˜ํ™˜(SUN~SAT)
public String solution(int a, int b) {
/* [1] Calendar ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ 2016๋…„ a์›” b์ผ ์„ค์ • */
Calendar cal = new Calendar.Builder()
.setCalendarType("iso8601") // ISO 8601 ํ‘œ์ค€์˜ ์บ˜๋ฆฐ๋” ํƒ€์ž… ์„ค์ •
.setDate(2016, a - 1, b) // ์—ฐ๋„, ์›”(0๋ถ€ํ„ฐ ์‹œ์ž‘), ์ผ ์„ค์ •
.build(); // Calendar ๊ฐ์ฒด ๋นŒ๋“œ
/* [2] ์ƒ์„ฑ๋œ Calendar ๊ฐ์ฒด์˜ ์š”์ผ์„ ์งง์€ ํ˜•์‹์œผ๋กœ ํ•œ๊ตญ์–ด๋กœ ํ‘œ์‹œํ•œ ํ›„ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ */
return cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, new Locale("ko-KR")).toUpperCase();
}
}

๐Ÿ“ ํ’€์ด 1 : ๋ฐฐ์—ด

class Solution {
// 2016๋…„ a์›” b์ผ์ด ๋ฌด์Šจ ์š”์ผ์ธ์ง€ ๋ฐ˜ํ™˜(SUN~SAT)
public String solution(int a, int b) {
/* [1] ๋ฐฐ์—ด ์„ธํŒ… */
String[] daysOfWeek = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"}; // ์š”์ผ ๋ฐฐ์—ด (SUN ~ SAT)
int[] daysInMonth = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // ๊ฐ ์›”์˜ ์ผ์ˆ˜ ๋ฐฐ์—ด (์œค๋…„)
/* [2] ์ด ์ผ์ˆ˜ ๊ณ„์‚ฐ */
int totalDays = 0;
for (int i = 0; i < a - 1; i++) {
totalDays += daysInMonth[i]; // a-1์›” ์ผ์ˆ˜ ํ•ฉ์‚ฐ
}
totalDays += b; // b์ผ
/* [3] ์š”์ผ ์ธ๋ฑ์Šค ๊ณ„์‚ฐ */
int idx = (totalDays + 4) % 7; // 1์›” 1์ผ ๊ธˆ์š”์ผ(5)์— ๋Œ€ํ•œ ์กฐ์ •โœจ
return daysOfWeek[idx]; // ํ•ด๋‹น ์š”์ผ ๋ฐ˜ํ™˜
}
}
yewon31