https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-guess-day-of-week/description

시뮬레이션 파트에서 요일 맞추기 문제가 가장 시간도 오래 걸리고 어렵게 느껴졌었다. 그렇게 약 한시간 가량을 고민 하고 결국 풀지 못하고 북마크를 해두었다.
그러고 다음 날 북마크를 해둔 사실이 기억 나 문제에 다시 들어가서 새로운 마음으로 풀어보니 정말 쉽게 풀렸다. 매번 프로그래밍 문제를 풀 때 이랬던 것 같다. 지금 아이디어가 떠오르지 않으면 잠깐 쉬며 머릿 속을 리프레쉬 하고 다시 보면 보이지 않던 것들이 보이게 된다. 하지만 이 방법의 단점은 중간에 한 번 끊으면 다시 그 문제를 잘 보지 않았다..
귀찮기도 하고 그 문제에 대한 존재 자체를 까먹는 경우도 많았다. 그러나 코드트리의 북마크 기능을 활용 하니 풀던 문제를 까먹어도 북마크 기록에 남아있어 언제든 다시 도전할 수 있는 정말 좋은 기회가 생겼다.
#include <iostream>
using namespace std;
int main() {
int a, b, c, d, e = 1, x, y;
int day[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
cin >> a >> b >> c >> d;
string week[7] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
if(a == c){
if(b < d){
e += (d-b)%7;
if(e == 7)
e = 0;
}
else{
e -= (b-d)%7;
if(e < 0)
e += 7;
if(e == 7)
e = 0;
}
}
else if(a < c){
int sum = 0;
for(int i=a+1; i<c; i++){
sum += day[i-1];
}
e += (d+(day[a-1]-b)+sum)%7;
if(e == 7)
e = 0;
}
else{
int sum = 0;
for(int i=c+1; i<a; i++){
sum += day[i-1];
}
e -= (b+(day[c-1]-d)+sum)%7;
if(e < 0)
e += 7;
if(e == 7)
e = 0;
}
cout << week[e];
return 0;
}
사실 문제 자체는 매우 단순했는데 생각하는 과정이 너무 복잡했고 계속 머릿속에서 개념이 꼬이며 점점 이상한 방향으로 흘러가며 실패하게 되었다.. 처음부터 종이에 필기를 하며 풀었으면 정말 좋았을 것 같다.
하지만 북마크 기능 덕분에 새롭게 문제에 다가가고 다시 처음부터 풀어보니 훨씬 수월하게 문제가 풀렸다.
앞으로 북마크 기능을 적극 활용 하며 어려운 문제가 있다면 한 발 물러서 잠시 쉬며 머리를 식히고 새로운 마음 가짐으로 문제를 바라보아야 겠다.
#코드트리#코딩테스트#코테공부#오답노트#공부습관