์ด๋ฒ ๊ธ์์๋ ๋ฐฑ์ค 14267๋ฒ ๋ฌธ์ “ํ์ฌ ๋ฌธํ 1”์ ํจ๊ป ํด๊ฒฐํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ง์ ๊ฐ์ ์นญ์ฐฌ์ด ์ด๋ป๊ฒ ์ ๋ฌ๋๋์ง๋ฅผ ์๋ฎฌ๋ ์ด์ ํ์ฌ ๊ฐ ์ง์์ด ๋ฐ์ ์ต์ข ์นญ์ฐฌ ์๋ฅผ ๊ณ์ฐํ๋ ๋ฌธ์ ์ ๋๋ค.
1. ๋ฌธ์ ์ค๋ช
1) ๋ฌธ์ ๊ฐ์
• ํ์ฌ์ ์ง์๋ค์๊ฒ ์นญ์ฐฌ์ด ์ฃผ์ด์ก์ ๋, ๊ทธ ์นญ์ฐฌ์ด ์์ฌ๋ก๋ถํฐ ์ ๋ฌ๋์ด ๊ฐ ์ง์์ด ์ต์ข ์ ์ผ๋ก ๋ฐ์ ์นญ์ฐฌ์ ์๋ฅผ ๊ณ์ฐํ๋ ๋ฌธ์ ์ ๋๋ค.
• ํ์ฌ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ๊ฐ ์ง์์ ํ๋์ ์์ฌ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
2) ์ ๋ ฅ
• ์ฒซ ์ค์ ์ง์์ ์ n๊ณผ ์นญ์ฐฌ ํ์ m์ด ์ฃผ์ด์ง๋๋ค.
• ๋ ๋ฒ์งธ ์ค์ ๊ฐ ์ง์์ ์์ฌ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋๋ค. ๋ฃจํธ ์ง์์ ์์ฌ ๋ฒํธ๋ -1์ ๋๋ค.
• ๋ค์ m๊ฐ์ ์ค์ ๊ฑธ์ณ ์นญ์ฐฌ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋๋ค. ๊ฐ ์ค์ ๋ ์ ์ i์ w๋ก ๊ตฌ์ฑ๋๋ฉฐ, i๋ฒ ์ง์์๊ฒ w๋งํผ์ ์นญ์ฐฌ์ ํ๋ค๋ ์๋ฏธ์ ๋๋ค.
3) ์ถ๋ ฅ
• ๊ฐ ์ง์์ด ๋ฐ์ ์ต์ข ์นญ์ฐฌ ์๋ฅผ ํ ์ค๋ก ์ถ๋ ฅํฉ๋๋ค.
2. ์ ๊ทผ๋ฒ
1) ์ ๋ ฅ๋ฐ๊ธฐ
• sys.stdin.readline์ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ์๋๋ฅผ ๋์ ๋๋ค.
• ์ฒซ ๋ฒ์งธ ์ค์์ ์ง์์ ์ n๊ณผ ์นญ์ฐฌ ํ์ m์ ์ ๋ ฅ๋ฐ๊ณ , ๋ ๋ฒ์งธ ์ค์์ ๊ฐ ์ง์์ ์์ฌ ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ์ต๋๋ค.
2) ์นญ์ฐฌ ์ ๋ณด ์ฒ๋ฆฌ
• ์นญ์ฐฌ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฐ ์ง์์ด ๋ฐ์ ์นญ์ฐฌ์ ์๋ฅผ ์ ์ฅํ๋ ๋ฆฌ์คํธ๋ฅผ ์์ฑํฉ๋๋ค.
• ์นญ์ฐฌ์ ๋ฐ์ ์ง์์ ๋ฒํธ๋ 1๋ถํฐ ์์ํ๋ฏ๋ก, ์ด๋ฅผ 0๋ถํฐ ์์ํ๋ ์ธ๋ฑ์ค๋ก ์กฐ์ ํฉ๋๋ค.
3) ์นญ์ฐฌ ์ ๋ฌ
• ๋ฃจํธ ์ง์์ ์ ์ธํ ๋๋จธ์ง ์ง์๋ค์ ๋ํด ์์ฌ๋ก๋ถํฐ ์นญ์ฐฌ์ ์ ๋ฌ๋ฐ์ ์ต์ข ์ ์ผ๋ก ๋ฐ์ ์นญ์ฐฌ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
3. ์ ๋ต ์ฝ๋
import sys
input = sys.stdin.readline
# n: ์ง์์ ์, m: ์นญ์ฐฌ ํ์
n, m = map(int, input().split())
# parent: ๊ฐ ์ง์์ ์์ฌ ๋ฒํธ (-1์ ๋ฃจํธ)
parent = list(map(int, input().split()))
# ์์ฌ์ ๋ฒํธ๋ฅผ 0๋ถํฐ ์์ํ๋๋ก ์กฐ์
for i in range(n):
if parent[i] != -1:
parent[i] -= 1
# praise: ๊ฐ ์ง์์ด ๋ฐ์ ์นญ์ฐฌ์ ์๋ฅผ ์ ์ฅํ๋ ๋ฆฌ์คํธ
praise = [0] * n
# m๋ฒ์ ์นญ์ฐฌ ์ ๋ณด๋ฅผ ์
๋ ฅ๋ฐ์ ์ฒ๋ฆฌ
for _ in range(m):
idx, cnt = map(int, input().split())
praise[idx - 1] += cnt # ํด๋น ์ง์์ ์นญ์ฐฌ ์์ ์ถ๊ฐ
# ์นญ์ฐฌ์ ์ ๋ฌํ๋ ๊ณผ์
# ๋ฃจํธ ์ง์(0๋ฒ)์ ์ ์ธํ ๋๋จธ์ง ์ง์๋ค์ ๋ํด ์นญ์ฐฌ์ ์์ฌ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์
for i in range(1, n):
praise[i] += praise[parent[i]]
# ๊ฐ ์ง์์ด ๋ฐ์ ์ต์ข
์นญ์ฐฌ ์๋ฅผ ์ถ๋ ฅ
print(*praise)
4. ์ฝ๋ ์ค๋ช
1) ์ ๋ ฅ ๋ฐ๊ธฐ
• n๊ณผ m์ ์ ๋ ฅ๋ฐ๊ณ , ๊ฐ ์ง์์ ์์ฌ ๋ฒํธ๋ฅผ ๋ฆฌ์คํธ๋ก ์ ๋ ฅ๋ฐ์ต๋๋ค.
• ์์ฌ ๋ฒํธ๊ฐ 1๋ถํฐ ์์ํ๋ฏ๋ก, ์ด๋ฅผ 0๋ถํฐ ์์ํ๋๋ก ์กฐ์ ํฉ๋๋ค.
2) ์นญ์ฐฌ ์ ๋ณด ์ฒ๋ฆฌ
• ์นญ์ฐฌ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ์ ํด๋น ์ง์์ ์นญ์ฐฌ ์์ ๋ํฉ๋๋ค.
• ์นญ์ฐฌ ๋ฐ์ ์ง์์ ๋ฒํธ๋ฅผ 0๋ถํฐ ์์ํ๋ ์ธ๋ฑ์ค๋ก ์กฐ์ ํฉ๋๋ค.
3) ์นญ์ฐฌ ์ ๋ฌ
• ๋ฃจํธ ์ง์์ ์ ์ธํ ๋๋จธ์ง ์ง์๋ค์ ๋ํด ์์ฌ๋ก๋ถํฐ ๋ฐ์ ์นญ์ฐฌ์ ์ ๋ฌ๋ฐ์ ์ต์ข ์นญ์ฐฌ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
4) ๊ฒฐ๊ณผ ์ถ๋ ฅ
• ๊ฐ ์ง์์ด ๋ฐ์ ์ต์ข ์นญ์ฐฌ ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
5. Github์ผ๋ก ํ์ธ
'๐ ์๊ณ ๋ฆฌ์ฆ > BOJ(๋ฐฑ์ค)_Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ(๋ฐฑ์ค) 14889[์คํํธ์ ๋งํฌ] (0) | 2024.07.09 |
---|---|
BOJ(๋ฐฑ์ค) 2606[๋ฐ์ด๋ฌ์ค] (0) | 2024.07.08 |
BOJ(๋ฐฑ์ค) 1068[ํธ๋ฆฌ] (0) | 2024.07.07 |
BOJ(๋ฐฑ์ค) 10819[์ฐจ์ด๋ฅผ ์ต๋๋ก] (0) | 2024.07.05 |
BOJ(๋ฐฑ์ค) 14465[์๊ฐ ๊ธธ์ ๊ฑด๋๊ฐ ์ด์ 5] (0) | 2024.07.04 |