WEEKLYCALENDAR 오답관련 문의드립니다.

  • memorys
    memorys

    WEEKLYCALENDAR
    https://algospot.com/judge/problem/read/WEEKLYCALENDAR

    문제가 윤년이 없는 단순한 형식이라

    1. 주와 월별일자수를 미리 정해두고
    2. 입력된 요일이 한주의 몇번째 인지를 판단
    3. 입력된 날짜에서 해당 주 공백만큼의 수를 차감하여 일요일부터 채워나가고
    4. 월 변화가 예상될 시에는 위에 미리 정해둔 사전에서 전, 후 달의 날짜를 꺼내서 가감하는 것으로 월문제를 해결

    하고자 하였습니다.
    랜덤으로 문제를 생성하는 것까지도 테스트삼아 해봤습니다만
    채점은 계속 오답으로 나와 질문글을 올립니다.
    대소문자나 요일의 스펠링문제도 없는것으로 생각되며, 개행이 관련 문제도 아닌거 같습니다..
    힌트좀 부탁드립니다..ㅠㅠ

    코드 블럭

    import random
    #주 구성
    week = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
    #월별 일자 구성
    daysInMonth = {0: 31, 1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31, 13: 31}
    
    for lll in range(input()):
    #for lll in range(10000):
        #입력 데이터
        inputData = raw_input().split()
        month = int(inputData[0])
        day = int(inputData[1])
        weekday = inputData[2]
        #month = random.randrange(12) + 1
        #day = random.randrange(daysInMonth[month]) + 1
        #weekday = week[random.randrange(7)]
        #입력 내용의 한주 내 포지션 판단
        index = week.index(weekday)
        thisWeek = []
        #한주를 채우기 시작함
        for i in range(7):
            #해당 일자에서 공백만큼 일자를 조종
            temp = day - (index - i)
            #달이 변했을 시 차이값 보정
            if temp < 1:
                temp += daysInMonth[month - 1]
            if temp > daysInMonth[month]:
                temp -= daysInMonth[month]
            thisWeek.append(temp)
        #print month, ' ', day, ' ', weekday
    
        print '%d %d %d %d %d %d %d' % (thisWeek[0], thisWeek[1], thisWeek[2], thisWeek[3], thisWeek[4], thisWeek[5], thisWeek[6])
        #print '%d : %d %d %d %d %d %d %d' % (lll, thisWeek[0], thisWeek[1], thisWeek[2], thisWeek[3], thisWeek[4], thisWeek[5], thisWeek[6])
        #if day != thisWeek[index]:
        #    print 'this line is error'
        #    break;
    
    }
    

    파이썬 2.7에 파이참사용하였습니다


    8년 전
1개의 댓글이 있습니다.
  • memorys
    memorys

    해결했습니다 else 하나를 빼먹었네요 ㅠㅠ


    8년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.