728x90
def solution(a, b):
days = [0,31,29,31,30,31,30,31,31,30,31,30,31] #0월,1월,2월~~
names = ['THU','FRI','SAT','SUN','MON','TUE','WED']
dayCount = b
for i in range(1, a): #5월: 1월~4월 일 수 더해줌
dayCount += days[i]
return names[dayCount % 7]
<내 풀이 분석>
- days: 인덱스에 해당하는 월이 포함하는 일 수 배열(0은 임시로 만든거, 1월은 days[1], 2월은 days[2] ...)
- names: 1일이 금요일이 될 수 있도록 배치한 요일 문자열들
1. daycount에 b(일)를 더해줌
2. a이전 월에 해당하는 일 수를 모두 daycount에 더해줌
3. 모든 일 수에 대해 나머지연산자 7을 적용한 결과를 인덱스로 names값 반환
<길이를 줄인 코드>
def solution(a, b):
days = [0,31,29,31,30,31,30,31,31,30,31,30,31] # 0월, 1월, 2월~~
names = ['THU','FRI','SAT','SUN','MON','TUE','WED']
return names[(sum(days[:a])+b) % 7]
파이썬을 이용하면 코드 길이를 엄청나게 줄일 수 있는 것 같다. 하지만 코드길이를 무조건 줄이는 것보다 알아보기 쉽게 작성하는 게 더 좋은 것 같다는 생각이 든당
728x90
'알고리즘 > programmers[1]' 카테고리의 다른 글
[프로그래머스] 최소직사각형 다른 풀이 (0) | 2022.01.22 |
---|---|
[프로그래머스] 최소직사각형: python3 (0) | 2022.01.21 |
[프로그래머스] 두 개 뽑아서 더하기: python3 (0) | 2022.01.21 |
[프로그래머스] 예산: python3 (0) | 2022.01.21 |
[프로그래머스] 3진법 뒤집기: python3 (0) | 2022.01.21 |