날짜를 입력받아 한 주를 출력하는 문제이다.
간단해 보이지만 조금 어려운 문제인데, 일월화수목금토 순으로 날짜를 출력해야하고, 그 와중에 월이 넘어가면 날짜를 더해주던 빼주던 해야하기 때문이다.
다른 언어였다면 고생했을거 같지만, 파이썬은 indexing이 매우 잘 된 언어라, 월이 넘어가도 리스트에서 처리하는게 쉬워 금방 풀게 되었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#weeklycalendar
import sys
months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 월마다의 날 수
weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] # 요일
for i in range(case):
month = int(month)
day = int(day)
resulting = [] # 날짜 입력
for j in range(7):
newday = startday+j # 일요일부터 토요일까지의 날짜
for k in range(7):
check = resulting[k]
if check <= 0: # 0보다 작으면 더해줌
check += months[month - 2]
elif check > months[month-1]: # 월이 가지고 있는 날짜보다 크면 빼줌
check -= months[month-1]
resulting[k] = str(check) # 문자열 화 (그래야 join 쓸 수 있음)
print(' '.join(resulting)) # 출력
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
join 함수를 이용해 다른 리스트에 넣고 출력할까 하다가 그냥 출력하게 했다. 이유는 없음
느낀점:
1. 조금 어렵다고 말하긴 했지만, 나도 실상은 이렇다.
물론 8달동안 이 문제만 붙들고 있었던 건 아니고, 그냥 예전에 고생했던 문제를 풀까 해서 풀었더니 풀렸다. 아무튼 20번만에 첫 정답이다. 항상 정답률 깎아먹기만 하는 나...
나
'코테용 문제풀이 > 알고스팟' 카테고리의 다른 글
알고스팟 Longest Increasing Sequence (LIS)문제 파이썬으로 풀기 (0) | 2019.10.27 |
---|---|
알고스팟 울타리 잘라내기 (fence) 문제 파이썬으로 풀기 (0) | 2019.10.14 |
알고스팟 록 페스티벌(festival) 문제 파이썬으로 풀기 (0) | 2019.10.08 |
알고스팟 weird numbers (weird) 문제 파이썬으로 풀기 (0) | 2019.09.22 |
알고스팟 Mismatched Brackets 문제 파이썬으로 풀기 (0) | 2019.09.12 |