์๋ ํ์ธ์! ์ค๋์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์ 2503๋ฒ ๋ฌธ์ , “์ซ์ ์ผ๊ตฌ”์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง์ถฐ ๊ฐ๋ฅํ ์ธ ์๋ฆฌ ์ซ์๋ฅผ ๋ง์ถ๋ ๋ฌธ์ ์ ๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ณผ์ ๊ณผ ํจ๊ป Python์ผ๋ก ์์ฑํ ์ ๋ต ์ฝ๋๋ฅผ ์๊ฐํ๊ฒ ์ต๋๋ค.
1. ๋ฌธ์ ์ค๋ช
์ซ์ ์ผ๊ตฌ๋ ์๋๋ฐฉ์ด ์๊ฐํ๊ณ ์๋ ์ธ ์๋ฆฌ ์ซ์๋ฅผ ์ง๋ฌธ์ ํตํด ๋ง์ถ๋ ๊ฒ์์ ๋๋ค. ๊ฐ ์ง๋ฌธ์ ๋ํด ์คํธ๋ผ์ดํฌ(Strikes)์ ๋ณผ(Balls)์ ๊ฐ์๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค. ์คํธ๋ผ์ดํฌ๋ ์ซ์์ ์์น๊ฐ ๋ชจ๋ ๋ง๋ ๊ฒฝ์ฐ, ๋ณผ์ ์ซ์๋ง ๋ง๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ฃผ์ด์ง ์ง๋ฌธ๊ณผ ๋ต๋ณ์ ๋ฐํ์ผ๋ก ๊ฐ๋ฅํ ์ซ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ ๋๋ค.
์ฃผ์ด์ง ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
• ์คํธ๋ผ์ดํฌ: ์ซ์์ ์์น๊ฐ ๋ชจ๋ ๋ง๋ ๊ฒฝ์ฐ
• ๋ณผ: ์ซ์๋ ๋ง์ง๋ง ์์น๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ
๋ฐฑ์ค ๋ฌธ์ URL: ์ซ์ ์ผ๊ตฌ
2. ์ ๊ทผ๋ฒ
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์๋์ ๊ฐ์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค:
1. ๊ฐ๋ฅํ ๋ชจ๋ ์ธ ์๋ฆฌ ์ซ์๋ฅผ ์์ฑํฉ๋๋ค.
2. ๊ฐ ์ซ์์ ๋ํด ์ฃผ์ด์ง ๋ชจ๋ ์ง๋ฌธ๊ณผ ๋น๊ตํ์ฌ ์คํธ๋ผ์ดํฌ์ ๋ณผ์ ๊ฐ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
3. ๊ณ์ฐ๋ ์คํธ๋ผ์ดํฌ์ ๋ณผ์ ๊ฐ์๊ฐ ์ฃผ์ด์ง ์ง๋ฌธ์ ๋ต๋ณ๊ณผ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํ ์ซ์๋ก ๊ฐ์ฃผํฉ๋๋ค.
4. ๋ชจ๋ ์ง๋ฌธ์ ๋ง์กฑํ๋ ์ซ์์ ๊ฐ์๋ฅผ ์ธ์ด ์ถ๋ ฅํฉ๋๋ค.
3. Python ์ฝ๋
# ์์๊ฐ ์๊ฐํ๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ต์ ์ด๊ฐ์
ans = 0
# ์ง๋ฌธํ ์
N = int(input())
# ์์๊ฐ ์๊ฐํ๋ ์ง๋ฌธ์ ๋ด๋ ๋ณ์
askArr = []
# ์ง๋ฌธ ์
๋ ฅ ์ฒ๋ฆฌ
for _ in range(N):
askArr.append(list(map(str, input().split())))
# ์ซ์์ผ๊ตฌ ์ํ
for i in range(100, 1000):
# ์ซ์๋ฅผ ๋น๊ตํ๊ธฐ ์ํด ์ซ์๋ฅผ ๋ฆฌ์คํธ ํํ๋ก ๋ณํ
num = list(map(int, str(i)))
chkCnt = 0 # ์ง๋ฌธ ํ๋ ๋ต์ด๋ ๊ฐ์ ์ซ์
# ์ซ์์ ๊ตฌ์ฑ์ด ๊ฐ์ ๊ฒฝ์ฐ์๋ SKIP์ฒ๋ฆฌ
if (num[0] == num[1]) or (num[1] == num[2]) or (num[0] == num[2]):
continue
if (num[1] == 0) or (num[2] == 0):
continue
for ask in askArr:
askN = list(map(int, ask[0]))
s = int(ask[1])
b = int(ask[2])
# ์คํธ๋ผ์ดํฌ ๊ณ์ฐ
sChk = 0
if num[0] == askN[0]:
sChk += 1
if num[1] == askN[1]:
sChk += 1
if num[2] == askN[2]:
sChk += 1
# ๋ณผ ๊ณ์ฐ
bChk = 0
if (num[0] == askN[1]) or (num[0] == askN[2]):
bChk += 1
if (num[1] == askN[0]) or (num[1] == askN[2]):
bChk += 1
if (num[2] == askN[0]) or (num[2] == askN[1]):
bChk += 1
if (s == sChk) and (b == bChk):
chkCnt += 1
# ์์๊ฐ ์๊ฐํ๊ณ ์์ ์ซ์ ์ฌ๋ถ ํ์ธ
if chkCnt == N:
ans += 1
print(ans)
4. ์ฝ๋ ์ค๋ช
์ด ์ฝ๋๋ ๋ชจ๋ ๊ฐ๋ฅํ ๊ฐ์ ํ์ํ๋ฉด์ ์ฃผ์ด์ง ์ง๋ฌธ์ ๋ง๋ ์ธ ์๋ฆฌ ์ซ์๋ฅผ ์ฐพ๋ ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค. ์ฃผ์ด์ง ์กฐ๊ฑด ๋ฒ์ ๋ด์์๋ ์ถฉ๋ถํ ํจ์จ์ ์ผ๋ก ๋ต์ ๊ตฌํ ์ ์์ต๋๋ค.
1. ์ง๋ฌธ ์ ๋ ฅ ์ฒ๋ฆฌ
• ์ฒซ ๋ฒ์งธ ์ค์์๋ ์ง๋ฌธ์ ๊ฐ์ N์ ์ ๋ ฅ๋ฐ์ต๋๋ค.
• ๊ทธ ๋ค์ N๊ฐ์ ์ค์๋ ๊ฐ๊ฐ์ ์ง๋ฌธ์ ์ ๋ ฅ๋ฐ์ต๋๋ค. ๊ฐ ์ง๋ฌธ์ ์ธ ์๋ฆฌ ์ซ์์ ํด๋น ์ซ์์ ๋ํ ์คํธ๋ผ์ดํฌ์ ๋ณผ์ ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
2. ์ซ์ ์ผ๊ตฌ ์ํ
• 100๋ถํฐ 999๊น์ง์ ์ซ์๋ฅผ ๋์์ผ๋ก ๋ฐ๋ณต๋ฌธ์ ์คํํฉ๋๋ค.
• ๊ฐ ์ซ์๋ฅผ ๋ฆฌ์คํธ ํํ๋ก ๋ณํํ๊ณ , ์ค๋ณต๋๋ ์ซ์๊ฐ ์๊ณ 0์ด ์๋ ์ ํจํ ์ซ์์ธ์ง ํ์ธํฉ๋๋ค.
• ์ดํ ์ ๋ ฅ๋ฐ์ ์ง๋ฌธ๋ค๊ณผ ๋น๊ตํ์ฌ ์คํธ๋ผ์ดํฌ์ ๋ณผ์ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
• ๊ณ์ฐ๋ ์คํธ๋ผ์ดํฌ์ ๋ณผ์ ์๊ฐ ์ง๋ฌธ์์ ์ฃผ์ด์ง ๊ฒ๊ณผ ์ผ์นํ๋์ง ํ์ธํ๊ณ , ๋ชจ๋ ์ง๋ฌธ์ ๋ํด ์ผ์นํ๋ฉด ๊ฐ๋ฅํ ๋ต์ ๊ฐ์๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.
3. ๊ฒฐ๊ณผ ์ถ๋ ฅ
• ๊ฐ๋ฅํ ๋ต์ ์ด ๊ฐ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์ด ์ฝ๋์ ์๋ ๋ฐฉ์๊ณผ ์ ๊ทผ๋ฒ์ ๋ํ ์ค๋ช ์ ๋ง์นฉ๋๋ค. ์ด ๋ฌธ์ ๋ ์์ ํ์์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์ผ๋ฉฐ, ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ชจ๋ ๊ฐ์ ํ์ํ๋ ๊ฒ์ด ํต์ฌ์ ๋๋ค.
5. Github์ผ๋ก ํ์ธ
'๐ ์๊ณ ๋ฆฌ์ฆ > BOJ(๋ฐฑ์ค)_Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ(๋ฐฑ์ค) 14252[๊ณต์ฝ์์ด] (0) | 2024.06.15 |
---|---|
BOJ(๋ฐฑ์ค) 1978[์์ ์ฐพ๊ธฐ] (0) | 2024.06.13 |
BOJ(๋ฐฑ์ค) 19532[์ํ์ ๋น๋๋ฉด๊ฐ์์ ๋๋ค] (0) | 2024.06.07 |
BOJ(๋ฐฑ์ค) 14568[์ฌํ ๋๋ ์ฃผ๊ธฐ] (0) | 2024.06.07 |
BOJ(๋ฐฑ์ค) 1816[์ํธ ๋น๋ฐ๋ฒํธ ๊ฒ์ฆ] (0) | 2024.06.07 |