์๋ ํ์ธ์! ์ค๋์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์ ๋ฌธ์ ๋ฒํธ 2309๋ฒ์ ํ์ด๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ฃผ์ด์ง 9๋ช ์ ๋์์ด ์ค ํฉ์ด 100์ด ๋๋ 7๋ช ์ ๋์์ด๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ ๋๋ค. ์๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ ๊ทผ ๋ฐฉ๋ฒ๊ณผ ์ ๋ต ์ฝ๋์ ๋๋ค.
1. ๋ฌธ์ ์ค๋ช
์ฃผ์ด์ง 9๋ช ์ ๋์์ด ํค ์ค์์ ํฉ์ด 100์ด ๋๋ 7๋ช ์ ๋์์ด๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ ๋๋ค.
๋ฌธ์ URL: https://www.acmicpc.net/problem/2309
2. ์ ๊ทผ๋ฒ
1. ์ ๋ ฅ๋ฐ๊ธฐ: 9๋ช ์ ๋์์ด ํค๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ์ ์ฅํฉ๋๋ค.
2. ์ฌ๊ท ํจ์ ์ฌ์ฉ: 9๋ช ์ ๋์์ด ์ค 7๋ช ์ ์ ํํ์ฌ ๊ทธ ํฉ์ด 100์ด ๋๋์ง ํ์ธํฉ๋๋ค.
3. ๊ฒฐ๊ณผ ์ถ๋ ฅ: ํฉ์ด 100์ด ๋๋ 7๋ช ์ ๋์์ด ํค๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํฉ๋๋ค.
3. ์ ๋ต ์ฝ๋
import sys
input = sys.stdin.readline
# ๋์์ด์ ํค๋ฅผ ๋ด๋ ๋ฐฐ์ด
arr = []
for _ in range(9):
arr.append(int(input())) # 9๋ช
์ ๋์์ด ํค๋ฅผ ์
๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ์ ์ฅ
# ์ ๋ต์ธ ๋์์ด์ ํค๋ฅผ ๋ด์ ์์ ๋ฐฐ์ด๊ณผ ๊ฒฐ๊ณผ ๋ฐฐ์ด
tmp = [] # ํ์ฌ ์ ํ๋ ๋์์ด๋ค์ ํค๋ฅผ ์์๋ก ๋ด์๋ ๋ฐฐ์ด
ans = [] # ์ต์ข
์ ์ผ๋ก ์ ํ๋ 7๋ช
์ ๋์์ด์ ํค๋ฅผ ๋ด์ ๋ฐฐ์ด
def acc(idx, num):
global ans # ์ ์ญ ๋ณ์ ans๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ ์ธ
global tmp
if num == 7: # 7๋ช
์ ๋์์ด๋ฅผ ์ ํํ ๊ฒฝ์ฐ
if sum(tmp) == 100: # ์ ํ๋ 7๋ช
์ ๋์์ด ํค์ ํฉ์ด 100์ธ ๊ฒฝ์ฐ
ans = sorted(tmp) # ์ ๋ต์ ์ ์ญ ๋ณ์ ans์ ์ ์ฅ (์ ๋ ฌ๋ ์ํ๋ก)
return # ํจ์ ์ข
๋ฃ
# idx๋ถํฐ ์์ํ์ฌ ๋จ์ ๋์์ด๋ค์ ์ ํ
for i in range(idx, len(arr)): # ์ธ๋ฑ์ค ๋ณ์ i ์ฌ์ฉ
if arr[i] not in tmp: # ํ์ฌ ์ ํ๋ ๋์์ด๋ค(tmp)์ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ
tmp.append(arr[i]) # ํด๋น ๋์์ด์ ํค๋ฅผ tmp์ ์ถ๊ฐ
acc(i + 1, num + 1) # ๋ค์ ๋์์ด๋ฅผ ์ ํํ๊ธฐ ์ํด ์ฌ๊ท ํธ์ถ (์ธ๋ฑ์ค๋ฅผ i + 1๋ก ์ฆ๊ฐ)
tmp.pop() # ์ฌ๊ท ํธ์ถ ์ดํ ๋ค์ ๋๋์์์ ๋ง์ง๋ง์ ์ถ๊ฐํ ๋์์ด์ ํค๋ฅผ ์ ๊ฑฐ
# ์ฌ๊ท ํจ์ ํธ์ถ ์์ (์ธ๋ฑ์ค 0๋ถํฐ, ํ์ฌ ์ ํ๋ ๋์์ด ์ 0๋ช
)
acc(0, 0)
# ์ต์ข
์ ์ผ๋ก ์ ํ๋ 7๋ช
์ ๋์์ด ํค๋ฅผ ์ถ๋ ฅ
for i in ans:
print(i)
4. ์ฝ๋ ์ค๋ช
1) ์ ๋ ฅ๋ฐ๊ธฐ
• sys.stdin.readline์ ์ฌ์ฉํ์ฌ 9๋ช ์ ๋์์ด ํค๋ฅผ ์ ๋ ฅ๋ฐ์ต๋๋ค.
2) ์ฅ์ ๋ฌผ ๋ฐ์ดํฐ ์ ๋ ฅ
• ๊ฐ ๋์์ด์ ํค๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด arr์ ์ ์ฅํฉ๋๋ค.
3) ๋์ ํฉ ๋ฐฐ์ด ์ด๊ธฐํ
• tmp ๋ฐฐ์ด์ ํ์ฌ ์ ํ๋ ๋์์ด ํค๋ฅผ ์์๋ก ์ ์ฅํ๊ณ , ans ๋ฐฐ์ด์ ์ต์ข ์ ์ผ๋ก ์ ํ๋ 7๋ช ์ ๋์์ด ํค๋ฅผ ์ ์ฅํฉ๋๋ค.
4) ์ฌ๊ท ํจ์ ์ฌ์ฉ
• acc ํจ์๋ ์ฌ๊ท์ ์ผ๋ก 7๋ช ์ ๋์์ด๋ฅผ ์ ํํ๊ณ , ์ด๋ค์ ํค ํฉ์ด 100์ด ๋๋ฉด ans ๋ฐฐ์ด์ ์ ์ฅํฉ๋๋ค.
5) ๊ฒฐ๊ณผ ์ถ๋ ฅ
• ans ๋ฐฐ์ด์ ๊ฐ์ ์ถ๋ ฅํ์ฌ ์ ํ๋ ๋์์ด๋ค์ ํค๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํฉ๋๋ค.
5. Github์ผ๋ก ํ์ธ
'๐ ์๊ณ ๋ฆฌ์ฆ > BOJ(๋ฐฑ์ค)_Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ(๋ฐฑ์ค) 2343[๊ธฐํ ๋ ์จ] (0) | 2024.06.21 |
---|---|
BOJ(๋ฐฑ์ค) 2512[์์ฐ] (0) | 2024.06.21 |
BOJ(๋ฐฑ์ค) 15649[N๊ณผ M (1)], 15650[N๊ณผ M (2)] (0) | 2024.06.20 |
BOJ(๋ฐฑ์ค) 3020[๊ฐ๋ฅ๋ฒ๋ ] (0) | 2024.06.19 |
BOJ(๋ฐฑ์ค) 11660[๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5] (0) | 2024.06.18 |