본문 바로가기
코딩 테스트/프로그래머스

2016년

by ornni 2024. 4. 13.
728x90
반응형

첫번째 코드

 

사실 코드를 작성하면서 틀린 부분이 없었다...단지 주의할 점은 문제를 열심히 읽자는 것..

2016년 1월 1일은 월요일이 아니라 금요일이다!!!!

 

먼저 문제를 보고 든 생각은 나눗셈을 이용한 문제라고 생각했다

모든 날 수를 더해서 7로 나누어 나머지 값에 따라 요일을 정하는 방법이다

ex)

1%7 = 1이므로 나머지가 1인 경우는 금요일

2%7 = 2이므로 나머지가 2인 경우는 토요일

이런식으로 월화수목금토일을 만드는 것이다!!

 

def before_month_to_day(x):
    if x <= 2:
        days = 31*(x//2)
        return days 
        
    elif x > 8:
        if x % 2 == 0:
            days = 31*(x//2) + 30*(x//2 - 1)
        else:
            days = 31*(x//2 + 1) + 30*(x//2 - 1)
        return days - 1
        
    else:
        if x % 2 == 0:
            days = 31*(x//2) + 30*(x//2 - 1)
        else:
            days = 31*(x//2) + 30*(x//2)
        return days - 1
    

def weekday(x):
    if x % 7 == 0:
        return 'THU'
    elif x % 7 == 1:
        return 'FRI'
    elif x % 7 == 2:
        return 'SAT'
    elif x % 7 == 3:
        return 'SUN'
    elif x % 7 == 4:
        return 'MON'
    elif x % 7 == 5:
        return 'TUE'
    else:
        return 'WED'
    
def solution(a, b):
    total_day = before_month_to_day(a) + b
    answer = weekday(total_day)
    return answer

 

통과!

생각보다 코드가 길어졌다...

더 간단히 풀 수 있는 방법도 있지 않을까...생각은 하지만 좋은 아이디어는 떠오르지 않는댜...ㅎㅎ;


링크

https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12901.%E2%80%852016%EB%85%84

 

programmers/프로그래머스/1/12901. 2016년 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

자릿수 더하기  (1) 2024.04.15
이진 변환 반복하기  (0) 2024.04.14
가운데 글자 가져오기  (2) 2024.04.12
K번째 수  (0) 2024.04.11
덧칠하기  (0) 2024.04.10