프로그래머스에서 본 예제를 자바로 구현해봤습니다. 더 좋은 풀이 있으면 공유하시지요..
1. 문제
2016년 1월 1일은 금요일입니다. 2016년 A월 B일은 무슨 요일일까요? 두 수 A,B를 입력받아 A월 B일이 무슨 요일인지 출력하는 getDayName 함수를 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각
SUN,MON,TUE,WED,THU,FRI,SAT
를 출력해주면 됩니다. 예를 들어 A=5, B=24가 입력된다면 5월 24일은 화요일이므로 TUE를 반환하면 됩니다.
2. 코드
package Test; public class DayName { public static void main(String[] args) { int m = 9; int n = 3; DayName dn = new DayName(); } private String dayName(int m, int n) { int days = 0; if (m > 1) { for (int inx = 1; inx < m; inx++) { days += getMonthDay(inx); } } days += n; int daysOffset = days % 7; switch (daysOffset) { case 1: return "FRI"; case 2: return "SAT"; case 3: return "SUN"; case 4: return "MON"; case 5: return "TUE"; case 6: return "WED"; default: return "THU"; } } private int getMonthDay(int m) { if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) return 31; else if (m == 2) return 29; else return 30; } }