doctscoder
하고싶은일있는개발
doctscoder
전체 방문자
오늘
어제
  • 분류 전체보기 (305)
    • 코테용 문제풀이 (304)
      • 백준 (272)
      • 알고스팟 (32)
    • 공부계획 (1)

최근 글

hELLO · Designed By 정상우.
doctscoder

하고싶은일있는개발

알고스팟 weekly calendar 문제 파이썬으로 풀기
코테용 문제풀이/알고스팟

알고스팟 weekly calendar 문제 파이썬으로 풀기

2019. 10. 9. 07:04

날짜를 입력받아 한 주를 출력하는 문제이다.

간단해 보이지만 조금 어려운 문제인데, 일월화수목금토 순으로 날짜를 출력해야하고, 그 와중에 월이 넘어가면 날짜를 더해주던 빼주던 해야하기 때문이다.

다른 언어였다면 고생했을거 같지만, 파이썬은 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']  # 요일
case = int(sys.stdin.readline())
for i in range(case):
    month, day, weekday = map(str, sys.stdin.readline().split())  # 입력
    month = int(month)
    day = int(day)
    startday = day - weekdays.index(weekday)  # 일요일부터 출력해야하므로 일요일이 몇일인지 계산
    resulting = []  # 날짜 입력
    for j in range(7):
        newday = startday+j  # 일요일부터 토요일까지의 날짜 
        resulting.append(newday)
    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
    '코테용 문제풀이/알고스팟' 카테고리의 다른 글
    • 알고스팟 Longest Increasing Sequence (LIS)문제 파이썬으로 풀기
    • 알고스팟 울타리 잘라내기 (fence) 문제 파이썬으로 풀기
    • 알고스팟 록 페스티벌(festival) 문제 파이썬으로 풀기
    • 알고스팟 weird numbers (weird) 문제 파이썬으로 풀기
    doctscoder
    doctscoder
    코딩 관련 공부를 적어놓는 블로그

    티스토리툴바