가자미의 개발이야기
[프로그래머스] Lv.1 2016년 본문
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12901
내 풀이
- 주어진 월을 고려하여 지난 달의 일 수를 switch문으로 일자에 더한다.
- 더해진 일자를 요일에 따라 7로 나누어 요일을 반환
class Solution {
public String solution(int a, int b) {
while(a!=1){
switch(a){
case 2:
b+=31;
break;
case 3:
b+=29;
break;
case 4:
b+=31;
break;
case 5:
b+=30;
break;
case 6:
b+=31;
break;
case 7:
b+=30;
break;
case 8:
b+=31;
break;
case 9:
b+=31;
break;
case 10:
b+=30;
break;
case 11:
b+=31;
break;
case 12:
b+=30;
break;
}
a--;
}
b=b%7;
String answer=null;
switch(b){
case 1:
answer="FRI";
break;
case 2:
answer="SAT";
break;
case 3:
answer="SUN";
break;
case 4:
answer="MON";
break;
case 5:
answer="TUE";
break;
case 6:
answer="WED";
break;
case 0:
answer="THU";
break;
}
return answer;
}
}
다른 풀이
- 각 달의 일자와 한 주의 요일을 배열에 저장
- 반복문을 사용해 일자를 더함
class Solution {
public String solution(int a, int b) {
String answer = "";
int[] c = {31,29,31,30,31,30,31,31,30,31,30,31};
String[] MM ={"FRI","SAT","SUN","MON","TUE","WED","THU"};
int Adate = 0;
for(int i = 0 ; i< a-1; i++){
Adate += c[i];
}
Adate += b-1;
answer = MM[Adate %7];
return answer;
}
}
'Computer Science > 알고리즘' 카테고리의 다른 글
[프로그래머스] Lv.1 두 개 뽑아서 더하기 (0) | 2021.06.20 |
---|---|
[프로그래머스] Lv1. 로또의 최고 순위와 최저 순위 (0) | 2021.06.18 |
[알고리즘] 자릿수의 합 (0) | 2021.05.18 |
[알고리즘] 두 개의 정다면체 주사위 (0) | 2021.05.18 |
[알고리즘] 대표값 구하기 (0) | 2021.05.16 |