
나의 풀이
class Solution {
public String solution(int a, int b) {
String answer = "";
int[] month = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30}; // 1
String[] days = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"}; // 2
int sumDay = b - 1; // 3
for(int i = 0; i < a; i++) { // 4
sumDay += month[i];
}
answer = days[sumDay % 7]; // 5
return answer;
}
}
과정
- 각 달의 일수를 배열로 만들어준다
- 1월 1일이 금요일이니 금요일부터 시작되는 일주일 요일 배열을 만들어준다
- 인덱스와 일수 사이에 차이때문에 1을 빼준다
- a월까지 일수를 더해준다
- sumDay에 7(일주일)을 나눠서 요일을 찾는다
다른 사람 풀이
class TryHelloWorld
{
public String getDayName(int a, int b)
{
String answer = "";
switch(a) {
case 1:
if(b % 7 == 1)
answer = "FRI";
else if(b % 7 == 2)
answer = "SAT";
else if(b % 7 == 3)
answer = "SUN";
else if(b % 7 == 4)
answer = "MON";
else if(b % 7 == 5)
answer = "TUE";
else if(b % 7 == 6)
answer = "WED";
else
answer = "THU";
break;
case 2:
if(b % 7 == 1)
answer = "MON";
else if(b % 7 == 2)
answer = "TUE";
else if(b % 7 == 3)
answer = "WED";
else if(b % 7 == 4)
answer = "THU";
else if(b % 7 == 5)
answer = "FRI";
else if(b % 7 == 6)
answer = "SAT";
else
answer = "SUN";
break;
case 3:
if(b % 7 == 1)
answer = "TUE";
else if(b % 7 == 2)
answer = "WED";
else if(b % 7 == 3)
answer = "THU";
else if(b % 7 == 4)
answer = "FRI";
else if(b % 7 == 5)
answer = "SAT";
else if(b % 7 == 6)
answer = "SUN";
else
answer = "MON";
break;
case 4:
if(b % 7 == 1)
answer = "THU";
else if(b % 7 == 2)
answer = "FRI";
else if(b % 7 == 3)
answer = "SAT";
else if(b % 7 == 4)
answer = "SUN";
else if(b % 7 == 5)
answer = "MON";
else if(b % 7 == 6)
answer = "TUE";
else
answer = "WED";
break;
case 5:
if(b % 7 == 1)
answer = "SAT";
else if(b % 7 == 2)
answer = "MON";
else if(b % 7 == 3)
answer = "TUE";
else if(b % 7 == 4)
answer = "WED";
else if(b % 7 == 5)
answer = "THU";
else if(b % 7 == 6)
answer = "FRI";
else
answer = "SUN";
break;
case 6:
if(b % 7 == 1)
answer = "WED";
else if(b % 7 == 2)
answer = "THU";
else if(b % 7 == 3)
answer = "FRI";
else if(b % 7 == 4)
answer = "SAT";
else if(b % 7 == 5)
answer = "SUN";
else if(b % 7 == 6)
answer = "MON";
else
answer = "TUE";
break;
case 7:
if(b % 7 == 1)
answer = "FRI";
else if(b % 7 == 2)
answer = "SAT";
else if(b % 7 == 3)
answer = "SUN";
else if(b % 7 == 4)
answer = "MON";
else if(b % 7 == 5)
answer = "TUE";
else if(b % 7 == 6)
answer = "WED";
else
answer = "THU";
break;
case 8:
if(b % 7 == 1)
answer = "MON";
else if(b % 7 == 2)
answer = "TUE";
else if(b % 7 == 3)
answer = "WED";
else if(b % 7 == 4)
answer = "THU";
else if(b % 7 == 5)
answer = "FRI";
else if(b % 7 == 6)
answer = "SAT";
else
answer = "SUN";
break;
case 9:
if(b % 7 == 1)
answer = "THU";
else if(b % 7 == 2)
answer = "FRI";
else if(b % 7 == 3)
answer = "SAT";
else if(b % 7 == 4)
answer = "SUN";
else if(b % 7 == 5)
answer = "MON";
else if(b % 7 == 6)
answer = "TUE";
else
answer = "WED";
break;
case 10:
if(b % 7 == 1)
answer = "SAT";
else if(b % 7 == 2)
answer = "SUN";
else if(b % 7 == 3)
answer = "MON";
else if(b % 7 == 4)
answer = "TUE";
else if(b % 7 == 5)
answer = "WED";
else if(b % 7 == 6)
answer = "THU";
else
answer = "FRI";
break;
case 11:
if(b % 7 == 1)
answer = "TUE";
else if(b % 7 == 2)
answer = "WED";
else if(b % 7 == 3)
answer = "THU";
else if(b % 7 == 4)
answer = "FRI";
else if(b % 7 == 5)
answer = "SAT";
else if(b % 7 == 6)
answer = "SUN";
else
answer = "MON";
break;
case 12:
if(b % 7 == 1)
answer = "THU";
else if(b % 7 == 2)
answer = "FRI";
else if(b % 7 == 3)
answer = "SAT";
else if(b % 7 == 4)
answer = "SUN";
else if(b % 7 == 5)
answer = "MON";
else if(b % 7 == 6)
answer = "TUE";
else
answer = "WED";
break;
}
return answer;
}
public static void main(String[] args)
{
TryHelloWorld test = new TryHelloWorld();
int a=5, b=24;
System.out.println(test.getDayName(a,b));
}
}
- 효율적인 코드는 아니지만 자신이 아는 한도 내에서 최선을 다한 코드라고 생각한다 좀 멋있다