[Python] 백준 1924번_2007년

2022. 8. 2. 17:49·Algorithm/Beakjoon
목차
  1. 문제 
  2. 코드
  3. 풀이 
  4. 다른 풀이 
반응형

문제 

https://www.acmicpc.net/problem/1924

 

1924번: 2007년

첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.

www.acmicpc.net

 

<특이점>

- 2월이 28일까지 있다.

- 1월 1일이 월요일이다.

 

코드

month = [31,28,31,30,31,30,31,31,30,31,30,31]
days = ["SUN","MON","TUE","WED","THU","FRI","SAT"]
m, d = map(int, input().split())
print(days[((sum(month[i] for i in range(m-1))+ d) % 7)])

풀이 

프로그래머스에서 풀었던 연습 문제 중 2016년 문제와 동일한 방식으로 풀 수 있었다. 

 

그때 배웠던 것이 sum을 comprehension을 이용해 사용하는 것이였는데, 가독성이 별로인 듯 싶다.

오히려 sum(month[:m]) 을 이용해 month[0] ~ month[m-1] 을 나타내는 것이 더 나아보인다. 

 

✔처음에  변수명을 day라 써서 nameError가 발생했는데, 자체 변수와 겹쳐서 인것 같다. days로 고쳐주니 통과했다.

 

✔ 짧게 코드를 짜는 것이 능사는 아니다. 직관적인 것과 짧은 것은 다른 것임을 기억하자

 

다른 풀이 

 출처: https://www.acmicpc.net/source/17639507

x, y = map(int, input().split())
for i in range(1, x):
    if i in [1, 3, 5, 7, 8, 10, 12]:
        y += 31
    elif i == 2:
        y += 28
    else:
        y += 30
day_week = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
print(day_week[y % 7])

→ 외려 이쪽이 더 직관성이 뛰어나보인다

  • 굳이 달 별 날짜를 별도의 리스트로 정의하기보단, 분기문을 작성해 31일/ 28일/ 30일로 경우를 나눠 더해줬다.
    • 이때, 특정 문자 or 숫자가 list안 element인지 판별하기 위해 " if i in [리스트]"를 사용함
  • 1월 1일이 월요일로 주어졌기때문에 %7을 이용해 나머지가 1 == 월요일임을 이용해 일요일부터 리스트에 담았다
반응형

'Algorithm > Beakjoon' 카테고리의 다른 글

[Python] 백준 2446번_별 찍기 - 9  (0) 2022.08.05
[Python] 백준 8393번_합  (0) 2022.08.03
[Python] 백준 11720번_숫자의 합  (0) 2022.08.01
[Python] 백준 11719번_그대로 출력하기 2  (0) 2022.08.01
[Python] 백준 11718번_그대로 출력하기  (0) 2022.08.01
  1. 문제 
  2. 코드
  3. 풀이 
  4. 다른 풀이 
'Algorithm/Beakjoon' 카테고리의 다른 글
  • [Python] 백준 2446번_별 찍기 - 9
  • [Python] 백준 8393번_합
  • [Python] 백준 11720번_숫자의 합
  • [Python] 백준 11719번_그대로 출력하기 2
mopipi
mopipi
칠전팔기
mopipi
공부하는 사람
mopipi
전체
오늘
어제
  • 분류 전체보기 (162)
    • Java (4)
    • Spring (21)
      • Spring boot 입문 (16)
      • [dsc] Spring-Novice-Study (3)
    • SQL (5)
    • Algorithm (127)
      • Programmars (38)
      • Beakjoon (85)
    • Git (1)
    • 생각들 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

hELLO· Designed By정상우.v4.5.2
mopipi
[Python] 백준 1924번_2007년

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.