Facts

  • 저저번주 처럼 강의 위주의 학습시간 이었다.

  • 다행히 계획한대로 이번 주 안으로 제공된 강의 시청을 마쳤다.

  • 중간에 장에 부담을 많이줬었나 장염이 생겼다.

Feelings

  • 수요일 장염 걸렸을 당시는 진짜로 골로가는 거 아닌가하고 걱정됬다.

  • 장염을 걸린 다음날 머리하고 장이 좀 괜찮아지니 오히려 학습욕구가 차올랐다.

Finding

  • 언제나 그렇듯 습득은 빠르나 기억력이 좋지 못해 여러 번 다시 찾아 볼 것 같다

  • 강의에서 배운 내용을 사용할 때, 정리를 다시 해가며 TIL을 작성해야겠다.

Future

  • 다음 주엔 희망한 발제 발표 이후, 본격적으로 아이템 시뮬레이터 과제를 시작할 것 같다.

개선점 분석

  • 저녁 식사 이후부터는 배웠던 내용을 정리해가며 블로그에 올리는 작업을 루틴으로 만들어야 겠다
    (이번에 자료 정리를 하면서 역시 핵심 요약에 시간이 많이 든다는 것을 깨달았다..)

지식창고

알고리즘 코드 카타

크기가 작은 부분

  • 문제 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요?
    두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수,
    solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다.

예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 “TUE”를 반환하세요.

  • 조건

    • 2016년은 윤년입니다.

    • 2016년 a월 b일은 실제로 있는 날입니다.
      (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)

function solution(a, b) {
    let answer = '';
    let day = 0;
    let week = ["THU","FRI","SAT","SUN","MON","TUE","WED"]
     
    for (let i = a-1;i > 0;i--) {
        if (i === 2) {
            day += 29;
        } else if (i % 2 === 0 && i < 7) {
            day += 30;
        } else if (i % 2 !== 0 && i <= 7) {
            day += 31;
        } else if (i % 2 === 0 && i > 7) {
            day += 31;
        } else { 
            day += 30;
        }
    }
    day += b;
    
    answer = week[day % 7]
        
    return answer;
}

코드 분석
LINE(4): 1월 1일 기준 금요일(week[1] = FRI)이 되도록 요일 설계
LINE(6 ~ 16): 윤년의 월별 규칙을 이용해 월의 일 수 더하기 LINE(19): 그 월의 남은 일 수 더하기 LINE(21): 일을 주(7)로 나눠 남은 수를 기준으로 요일을 구한다