1N, M, R = map(int, input().split()) 2 3item = list(map(int, input().split())) 4G = [[] for _ in range(N)] 5for _ in range(R): 6 a, b, c = map(int, input().split()) 7 G[a-1].append((b-1, c)) 8 G[b-1].append((a-1, c)) 9 10def dfs(node, dist): 11 global result 12 if dist > M: 13 return 14 if not visit[node]: 15 result += item[node] 16 visit[node] = True 17 18 for n_node, n_dist in G[node]: 19 dfs(n_node, dist+n_dist) 20 21max_result = 0 22 23for i in range(N): 24 result = 0 25 visit = [False]*N 26 dfs(i, 0) 27 max_result = max(max_result, result) 28 29print (max_result) ๋ถ„๋ฅ˜์— ๋‹ค์ต์ŠคํŠธ๋ผ, ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ๋กœ ๋˜์–ด์žˆ์ง€๋งŒ DFS๋กœ ํ’€์—ˆ๋‹ค ํ’€์ด ๋ฐฉ๋ฒ• ์—ฌ๊ธฐ์„œ๋Š” ์žฌ๋ฐฉ๋ฌธ ํ–ˆ๋‹ค๊ณ  ํ•ด์„œ ํƒ์ƒ‰์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ์•ˆ๋œ๋‹ค ์žฌ๋ฐฉ๋ฌธํ–ˆ์„๋•Œ ์ „์— ๋ฐฉ๋ฌธํ–ˆ์„ ๋•Œ๋ณด๋‹ค ๋” ์งง์€ ํ†ต๋กœ๋กœ ๋“ค์–ด์™”๋‹ค๋ฉด ๋” ๋งŽ์€ ์•„์ดํ…œ์„ ์–ป์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค ๋‹ค๋งŒ, ์•„์ดํ…œ์€ ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค ์œ„์˜ ๋‚ด์šฉ์„ ์งˆ๋ฌธ๊ฒŒ์‹œํŒ์„ ๋ณด๋‹ค๊ฐ€ ๊นจ๋‹ซ๊ณ  ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค
๊ฐœ๋ฐœ์ž๋Š” ํ•ญ์ƒ ๋ณ€ํ™”ํ•˜๋ฉด์„œ ์„ฑ์žฅํ•ด์•ผ ํ•œ๋‹ค ๊ฐœ๋ฐœ์ž์˜ ์ง€์†์ ์ธ ์„ฑ์žฅ ๋ฐฉ๋ฒ• ๊น”๋”ํ•œ ์ฝ”๋“œ ์ ์ ˆํ•œ ๋…ผ๋ฆฌ๋ ฅ (= ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ) ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ ๋๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ๋ฒ• ATDD (Acceptance Test Driven Development) : ๊ณ ๊ฐ, ๊ฐœ๋ฐœ์ž, ํ…Œ์Šคํ„ฐ ๊ฐ„์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋งŒ ๋งŒ๋“ค๊ธฐ (Celler Create) ๋ฆฌํŒฉํ† ๋ง (Refactoring) ์ฝ”๋“œ ์ฝ๊ธฐ (Code Review) ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ (Don’t Reinvent The Wheel) ๋‹จ์ˆœํ•œ ๋””์ž์ธ (Simple Design) ์ง„ํ™”์  ๋””์ž์ธ (Evolutionary Design) ํ˜‘์—… (Cooperative Design Design Review) ๊ธฐ์ˆ  ๋ฒค์น˜๋งˆํ‚น (Benchmarking) ์ด๋ ฅ์„œ์— git repo ์ œ์ถœํ•  ๋•Œ, ๊พธ์ค€ํžˆ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๋ฏผํ•˜๊ณ  ๊ด€๋ฆฌํ•œ repo๋ฅผ ์ œ์ถœํ•˜์ž