파이썬 calendar 함수 사용 안하고, 달력출력 프로그램 만들기

조회수 5205회

달력 출력 프로그램을 작성하는 과제를 받았는데 혹시, calendar 함수를 사용안하고 1일이 시작하는 요일 그리고 그 달이 몇일 까지 있는지 입력받아 달력을 출력하는 프로그램을 작성할 수 있을까요?

정수는 두개를 받는데 (마지막날짜, 1일이 시작하는 요일(일요일부터 토요일까지/ 0부터 6까지로) 입력한다)

단 0부터 6 사이가 아닌 숫자에 대해서는 마지막 날짜를 입력 받지 않고, 아무런 내용을 출력하지 않는다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 프로그램을 작성할 수 있느냐 없느냐는 이상한 질문입니다. 그 문제를 해결하는 일관되고 체계적이며 효율적인 방법이 있느냐는 게 옳은 질문이죠. 근데 고작 달력 그리는 문제에 그런 방법이 없을 리 없거든요. 그러니 일단 주어진 조건에서 달력을 그리는 방법이 있는지를 연구해 봅시다.

    혹시 누가 andrew님한테 종이와 펜 하나를 던져주고 저런 일을 시킨다고 하면, 어떤 방법으로 달력을 그릴 수 있을까요?

    1. 마지막 날짜가 28에서 31 사이에 있는 정수가 아니면 그냥 안 그리겠죠. 말이 안 되는 날짜니까요.
    2. 1일이 시작하는 요일이 0에서 6 사이에 있는 정수가 아니어도 안 그리겠죠. 말이 안 되는 요일이니까요.
    3. 마지막 날짜와 1일이 시작하는 요일이 다 말이 되면 그걸 기억해 놓고 달력을 그리기 시작하겠죠.
    4. 종이에 7칸짜리 표를 길게 하나 그린 다음 맨 윗줄에 각 요일의 숫자를 0, 1, 2, 3, 4, 5, 6이라고 적어놓겠지요. 헷갈리지 않게...
    5. 1일이 시작하는 요일이 만약 수요일이라면, 3이 써진 칸의 첫번째 줄에 커다랗게 1을 쓰겠지요.
    6. 그 다음 방금 쓴 숫자에 1을 더한 수를 그 오른쪽 칸에 쓰겠지요.
    7. 6을 반복하다가 더이상 오른쪽 칸이 없다면 다음 줄 맨 첫번째 칸에 다음 수를 쓰고 다시 하던 걸 하겠지요.
    8. 6~7을 반복하다가 마지막 날짜에 해당하는 숫자까지 표에 쓰고 나면 잠깐 멈추겠죠.
    9. 표를 쭉 보고 별 이상이 없다 싶으면 맨 위에 쓴 0, 1, 2, 3, 4, 5, 6을 각각 일, 월, 화, 수, 목, 금, 토 라고 고쳐 쓰겠지요.
    10. 쨘 달력이 완성되었습니다.

    이 요령을 컴퓨터한테 컴퓨터 말로 알려준 다음 그걸 실행시키면 그게 프로그램입니다. 직접 생각해 보시고 시도해 보세요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)