ABOUT ME

알게 된 것을 기록하고, 그 기록을 나누어요.

Today
Yesterday
Total
  • [매일코딩-프로그래머스] 2016년 03
    WEB Dev/CordingTEST 2021. 11. 24. 10:41
    728x90

     

     

    손코딩은 시간이 모자라서 제대로 못해봤는데, 이 분이 문제에 있는 '함수, solution' 을 무시하고 다른 함수 이름을 넣어서 테스트가 안된 것 같다. 

    마지막 함수를 최종 실행되는 함수인 ResultFuc를 solution으로 바꾸고, 인자로 아무것도 들어가지 않고 있어서

    a, b 인자를 넣어주었다. month=a, day=b도 불필요해 보여서 a, b로 수정했다. 

    위의 getDayName 함수는 전달한 a, b를 month, day라는 변수 이름으로 잘 받고 있어서 별도로 a,b로 바꾸지 않아도 된다. 바꾸면 여러모로 좋지 않을까 성능이라던지?

     

    수정한 최종 코드는 이것이다.

     

    const getDayName = (month,day) => {
        
        //month는 주어지는 변수 a 고 day는 주어지는 변수 b이니까 a, b로 변환해도 될듯
        //month, day가 읽는 사람 입장에서는 더 편해요.
        const month_31 = [1,3,5,7,8,10,12];
        const month_30 = [4,6,9,11];
        const day_all = [31,29,31,30,31,30,31,31,30,31,30,31];
        let day_plus = null;
    
        const sum = (month, day_plus, day_all) => {
            for(let i=0; i < month-1; i++){
                 day_plus += day_all[i]
            }
            return day_plus += day;
        }
    
        if(month === 1 && day <= 31){
            return day_plus = day;
        }
        else if(month === 2 && day <= 29 || month === 3 && day <= 31){
            return sum(month, day_plus, day_all);
        }
        else if(month_31.indexOf(month-1) > -1 && day <= 30 && month !== 13){
            return sum(month, day_plus, day_all);
        }
        else if(month_30.indexOf(month-1) > -1 && day <= 31 ){
            return sum(month, day_plus, day_all);
        }else{
            null;
        }
    
        return day_plus;
    }
    
    const solution = (a, b) => {
        const DayOfTheWeek = ['THU','FRI','SAT','SUN','MON','TUE','WED'];
        let result = null;
        let ResultDay = getDayName(a, b);
    
        if(ResultDay !== null){
            for(let i = 0; i < 7; i++){
            if(ResultDay % 7 === i){
               return result = DayOfTheWeek[i];
                }
            }
        }else{
            null;
        }
    
        return result;
    }

     

    728x90

    댓글

Designed by Tistory.