[TIL_07.24] 코딩테스트_문제풀기
📝2016년
💡접근방법
🙋♀️1월 1일로부터 a,b로 주어진 날짜까지 얼마나 지났는지 구하기
- a-1 : 1월로부터 몇 달이 지났는지 계산
b-1 : 1일로부터 몇 일이 지났는지 계산 - a-1 값을 가지고 지금까지 지난 달의 일수를 모두 더함
- 여기에 b-1 값을 더해 1월 1일부터 a월 b일까지 총 지나간 날짜를 구함
🙋♀️나머지 연산을 통해 요일 구하기
- 총 지나간 날짜를 7로 나눈 나머지가 0~6까지 일때, 나머지에 따라 요일이 결정된다
- 0 : 금요일
1 : 토요일
2 : 일요일
3 : 월요일
4 : 화요일
5 : 수요일
6 : 목요일
📍코드
🙋♀️switch case 문 사용
class Solution {
public String solution(int a, int b) {
String answer = "";
int[] year = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int month = a-1;
int date = b-1;
for(int i = 0; i < month; i++) {
date += year[i];
}
date = date % 7;
switch(date) {
case 0 :
answer = "FRI";
break;
case 1 :
answer = "SAT";
break;
case 2 :
answer = "SUN";
break;
case 3 :
answer = "MON";
break;
case 4 :
answer = "TUE";
break;
case 5 :
answer = "WED";
break;
case 6 :
answer = "THU";
break;
}
return answer;
}
}
📍코드 수정_두 번째 풀이
코드의 길이를 좀 더 줄일 수 있지 않을까?
🙋♀️String 배열 사용
class Solution {
public String solution(int a, int b) {
String answer = "";
int[] year = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
String[] weeks = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
int month = a-1;
int date = b-1;
for(int i = 0; i < month; i++) {
date += year[i];
}
date = date % 7;
answer = weeks[date];
return answer;
}
}
Author And Source
이 문제에 관하여([TIL_07.24] 코딩테스트_문제풀기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@zero9657/TIL07.24-코딩테스트문제풀기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)