[プログラマー][java]2016年
質問リンク-https://programmers.co.kr/learn/courses/30/lessons/12901
解決策まず図案を確認します.
週に7回、7日に1回帰ってきます.
では、1月1日から何日が経ちましたか.- まず100日が過ぎたことを考えてみましょう.
100日が過ぎたのは7日14回、2日が過ぎたと言っても過言ではありません.
曜日は7日周期なので、1月1日から2日が過ぎました.日曜日と言えます 例の5月24日を考えてみましょう.
5月24日1月1日から何日が経ちましたか?
1月が過ぎ、2月が過ぎ、3、4月が過ぎた.
また、5月は24日を過ぎています.
そのため、1月、2月、3月、4月の日付と24日ごとに加算すればいいのです.
全部で数日経ったことを知っていれば、上記の例のように簡単に手に入れられます.
解決策
週に7回、7日に1回帰ってきます.
では、1月1日から何日が経ちましたか.-
100日が過ぎたのは7日14回、2日が過ぎたと言っても過言ではありません.
曜日は7日周期なので、1月1日から2日が過ぎました.日曜日と言えます
5月24日1月1日から何日が経ちましたか?
1月が過ぎ、2月が過ぎ、3、4月が過ぎた.
また、5月は24日を過ぎています.
そのため、1月、2月、3月、4月の日付と24日ごとに加算すればいいのです.
全部で数日経ったことを知っていれば、上記の例のように簡単に手に入れられます.
class Solution {
public String solution(int a, int b) {
int days = 0;
for(int i=1;i<a;i++){
if(i==2) days+=29; //2월은 윤달
else if(i==4||i==6||i==9||i==11){
days+=30;
}
else{
days+=31;
}
}
days+=b; //나머지 일수 더하기
int remain = days%7; //나머지 구하기
if(remain==1){
return "FRI";
} else if(remain==2){
return "SAT";
} else if(remain==3){
return "SUN";
}else if(remain==4){
return "MON";
}else if(remain==5){
return "TUE";
}else if(remain==6){
return "WED";
}else{
return "THU";
}
}
}
Reference
この問題について([プログラマー][java]2016年), 我々は、より多くの情報をここで見つけました https://velog.io/@guswls159357/프로그래머스-2016년テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol