2021. 6. 29. 17:06ใPython
https://www.acmicpc.net/problem/1924
๊ตฌํด์ผ ํ๋ ๋ฐ๋ ๊ฐ๋จํ๋ค! 2007๋ x์ y์ผ์ด ๋ฌด์จ ๋ ์ง์ธ์ง ๊ตฌํ๋ฉด ๋๋ค.
2007๋ 1์ 1์ผ์ ์์์ผ์ด๋ค.
๋๋ ์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ์ ๊ทผํด์ผ ๊ฐ๋จํ๊ฒ ํ ์ ์์์ง ๊ณ ๋ฏผ์ ๊ฝค ํ ๊ฒ ๊ฐ๋ค. ์ฒ์์ ๊ณ ๋ฏผํ ๊ฒ์ ์๋ณ๋ก 31์ผ์ด๊ฑฐ๋, 30์ผ์ด๊ฑฐ๋, 28์ผ์ด ๋๋๋ฐ ์ด๊ฑธ ์ด๋ป๊ฒ ๊ณ์ฐํด์ผ ๊ทธ ๋ค์ ์์ ์์ ์์ผ์ ์ ์ ์์๊น, ํ๋ ๊ฒ์ด์๋ค. ๊ฐ์ ๋ฌ ๋ด์์๋ 7์ผ๋ง๋ค ๋ฐ๋ณต๋๋ ๊ท์น์ด ์๊ธฐ์ง๋ง ์์ด ๋ฐ๋๋ฉด ๊ทธ ๊ท์น์ด ๋ชจ๋ ๋ฐ๋์ด ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ด๊ฐ ์๊ฐํ ๋ฐฉ์์ ํ๋ฅผ ๋ง๋๋ ๊ฒ์ด์๋ค.
dates = deque(['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'])
ํ์ sun์ 0๋ฒ์งธ ์ธ๋ฑ์ค๋ก ๋ฃ๊ณ ์ฐจ๋ก๋๋ก sat๊น์ง ์ถ๋ ฅํ๊ณ ์ ํ๋ ๋ฌธ์์ด์ ๋ฃ์ด์ค๋ค.
์ฐ์ ์ฒ์ ์์ํ ๋ 1์ 1์ผ์ ์์์ผ์ด๋ค. ์ฆ, dates๋ผ๋ ํ์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค(0๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ์์ํ๋ฏ๋ก ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค๋ MON์ด ๋ง์)์ ์ผ์นํ๋ค.
1์ 2์ผ์ 7%2 == 2. ์ฆ ๋ ๋ฒ์งธ ์ธ๋ฑ์ค์ ์ผ์นํ๋ค.
์ธ๋ฑ์ค์ ๊ณ์ํด์ ์ผ์นํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด ์ด๋ค ํน์ ํ ์์ 1์ผ์ด ๋์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค๊ฐ ๋๋ฉด ๋๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
์ฆ, ๋ง์ฝ 3์ 1์ผ์ด ์์์ผ์ด๋ผ๋ฉด ์์์ผ์ด dates[1]์ ๊ฐ์ด์ฌ์ผ ํ๋ค. ์ด๋ ๊ฒ ๋ง์ถ์ด ์ฃผ๋ฉด 3์์ ์ด๋ค y์ผ์ด ์ ๋ ฅ๋์ด๋ y % 7์ ๊ฐ์ ๊ท์น์ ๋ฐ๋ผ ์, ๋ชฉ, ๊ธ, ํ , ์ผ, ์, ํ ํ์์ ๋ฐ๋ฅด๊ฒ ๋์ด ์๋ค. ๊ทธ ํ์์ ๋ง์ถ ์ ์๋๋ก ํ์ ๊ฐ์ popํ๊ณ appendํด์ฃผ๋ฉด ๋๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ท์น์ ๋ง๋ค๊ธฐ ์ํด ์กฐ์ฌํด์ผ ํ๋ ๊ฒ์ด ์๋ง๋ค ๋ ์ง๊ฐ 31์ผ, 30์ผ, 28์ผ๋ก ๋ค๋ฅด๋ค๋ ๊ฒ์ด๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ๋ง๋ค์ด์ง for ๋ฌธ์
zeroIndex = 1
for month in range(1, x):
if month==2: zeroIndex = 28%7
elif month ==4 or month==6 or month==9 or month==11: zeroIndex = 30%7
else: zeroIndex = 31%7
for i in range(zeroIndex):
dates.append(dates.popleft())
์ฆ, month์ range(1,x) (์ฌ๊ธฐ์ x๋ ์ ๋ ฅ๋ฐ์ x์) ๋์ case๋ฅผ ๋๋์ด์ ๊ณ์ฐ์ ์คํํ๋ค. ์ฌ๊ธฐ์ ์ฃผ์ํด์ผ ํ ์ ์ ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ 3์ 3์ผ์ ๊ฒฐ๊ณผ๋ฅผ ์๊ณ ์ถ๋ค๋ฉด x == 3, ์ฆ for๋ฌธ์ month๊ฐ 1, 2 ์ผ๋๋ง ๋๊ฒ ๋๋ค๋ ๊ฒ์ด๋ค. ์ฆ, ๋ด๊ฐ for๋ฌธ์์ ๊ตฌํ๊ณ ์ ํ๋ ๊ฒ์ 3์ ์ง์ ๋ฌ์ธ 2์๋ฌ๊น์ง์ ๊ฒฐ๊ณผ์ด๋ค. ์๋ํ๋ฉด for๋ฌธ ์์ ์ค์ฒฉ๋์ด ์๋ for ๋ฌธ(range(zeroIndex)์ธ)์์ ๊ตฌํด์ฃผ๋ ๊ฒ์ด 2์๋ฌ ๋ ์ง์์์ ๊ท์น์ ๊นจ๊ณ ์๋กญ๊ฒ 3์๋ฌ์ ๊ท์น์ ๋ง๋ค๊ธฐ ์ํด์ ์ ์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
month๊ฐ 1์ผ ๋๋ else์ ๋ค์ด๊ฐ์ zeroIndex ๊ฐ์ด 3์ด ๋๋ค. ์ฆ, 1์ 31์ผ์ด 31 % 7 == 3์ผ๋ก dates[3]์ 'WED'๊ฐ ๋๋ค๋ ๋ป์ด๋ค. ๊ทธ๋ฆฌ๊ณ 2์ 1์ผ์ด 'THU'๊ฐ ๋์ด์ผ ํ๋ค๋ ๋ป์ด๊ธฐ๋ ํ๋ค. ์ฆ, dates์ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๊ฐ 'THU'๋ก ๋ฐ๋์ด์ผ ํ๋ค๋ ๋ป์ด๋ค.
๊ทธ๋์ for๋ฌธ์ ๋ค์ ๋๋ฉด์ dates.popleft()๋ฅผ 3๋ฒ ํด์ฃผ๋ฉด SUN, MON, TUE ๊ฐ pop๋๊ณ ๋ค์ dates์ append๋์ด,
dates = ['WED', 'THU', 'FRI', 'SAT', 'SUN', 'MON', 'TUE'] ํ์์ผ๋ก ๋ฐ๋๊ฒ ๋๋ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฉด 2์์์๋ y์ผ % 7์ ๊ฐ์ด 0์ด๋ฉด ์์์ผ, 1์ด๋ฉด ๋ชฉ์์ผ, 2๋ฉด ๊ธ์์ผ... ์ด๋ฐ์์ ํจํด์ด ์์ฑ๋๋ ๊ฒ์ด๋ค.
์ด๊ฒ 3์๋ฌ์๋ ๊ทธ๋๋ก ์ ์ฉ๋๋ค๋ฉด 2์์ ๋ง์ง๋ง ๋ ์ง๋ 28 % 7 == 0: ์ฆ ์์์ผ์ด๋ค. ๊ทธ๋ผ 3์ 1์ผ์ ๋ชฉ์์ผ์ด ๋๊ณ , ๋ค์ 2์๋ฌ์์ ํ๋ ๊ฒ์ฒ๋ผ Pop๊ณผ append๋ฅผ ๋ฐ๋ณตํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ ์ฐ์ฐ์ด ๋๋๊ณ ๋ด๊ฐ ์ํ๋ ๊ฐ์ ์ถ๋ ฅํ๊ธฐ ์ํด์๋ print(dates[y%7])์ ํด์ฃผ๋ฉด ๋๋ค.
<์ ์ฒด ์ฝ๋>
from sys import stdin
from collections import deque
x, y = map(int, stdin.readline().split())
zeroIndex = 1
dates = deque(['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'])
for month in range(1, x):
if month==2: zeroIndex = 28%7
elif month ==4 or month==6 or month==9 or month==11: zeroIndex = 30%7
else: zeroIndex = 31%7
for i in range(zeroIndex):
dates.append(dates.popleft())
print(dates[y%7])
'Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 2011 ํ์ด์ฌ (1) | 2021.07.31 |
---|---|
๋ฐฑ์ค 1946 ํ์ด์ฌ (0) | 2021.05.04 |
๋ฐฑ์ค 1476 ํ์ด์ฌ (0) | 2021.04.07 |
๋ฐฑ์ค 1021๋ฒ ํ์ด์ฌ (0) | 2021.04.02 |
๋ฐฑ์ค 1550๋ฒ ํ์ด์ฌ (0) | 2021.03.27 |