Search

๊ตฌ์—ฐ์ง€

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
2798
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
# N: ๋งˆ์„ ๊ฐœ์ˆ˜: 50์ดํ•˜ # road: 2000๊ฐœ ์ดํ•˜ # K: ์ œํ•œ์‹œ๊ฐ„ - 10000 ์ดํ•˜ import numpy as np def solution(N, road, K): time_list = [0]*N location = {1} # ๋ฐ”๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ for line in road: if line[0] == 1: # ๊ฐ’์ด 0์ด๋ฉด min์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ทธ ๊ฐ’์„ ๋ฐ”๋กœ ๋„ฃ๋Š”๋‹ค. if time_list[line[1]-1] == 0: time_list[line[1]-1] = line[2] # ์ด์ „์˜ ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๋” ์ž‘์€ ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค. else: time_list[line[1]-1] = min(line[2], time_list[line[1]-1]) location.add(line[1]) elif line[1] == 1: if time_list[line[0]-1] == 0: time_list[line[0]-1] = line[2] else: time_list[line[0]-1] = min(line[2], time_list[line[0]-1]) location.add(line[0]) # 50๊ฐœ๊นŒ์ง€๋งŒ ์กด์žฌ -> 50๋ฒˆ ์ด๋‚ด์— ๋‹ค ์—ฐ๊ฒฐ๋  ๊ฒƒ for i in range(50): for line in road: # ๋™์ผํ•œ ๋„์‹œ๋“ค์„ ์ด์–ด์ฃผ๋Š” ๋‹ค๋ฅธ ๋ฃจํŠธ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ 1๊ณผ ์—ฐ๊ฒฐ๋œ ๋„์‹œ์—์„œ๋„ ๋ฐ˜๋“œ์‹œ 0์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•จ if line[0] in location: if time_list[line[1]-1] == 0: time_list[line[1]-1] = time_list[line[0]-1] + line[2] location.add(line[1]) else: time_list[line[1] - 1] = min(time_list[line[0] - 1] + line[2], time_list[line[1]-1]) location.add(line[1]) if line[1] in location: if time_list[line[0]-1] == 0: time_list[line[0]-1] = time_list[line[1]-1] + line[2] location.add(line[0]) else: time_list[line[0] - 1] = min(time_list[line[1] - 1] + line[2], time_list[line[0]-1]) location.add(line[0]) print(time_list) # 1๋ฒˆ์€ ๋ฐ˜๋“œ์‹œ 0์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ -> K์‹œ๊ฐ„์ด ๋„˜๋”๋ผ๋„ count๋˜์ง€ ์•Š๋„๋ก ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค -> [1:] # np.where๋กœ K๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ ํ›„ N์—์„œ ๋บ€๋‹ค(<= ์—ฐ์‚ฐ์€ np.where์—์„œ ๋จนํžˆ์ง€ ์•Š์Œ) return N - len(np.where(np.array(time_list[1:]) > K)[0]) print(solution(5, [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]], 3)) print(solution(6, [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]], 4)) print(solution(7, [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1], [1,7,2], [2,7,6]], 4)) print(solution(6, [[1,2,1],[2,1,4],[1,3,2],[3,1,3],[2,3,2],[3,4,3],[4,3,5],[3,5,2],[3,5,3],[5,6,1]], 4))
Python
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
1๋ฒˆ ๋„์‹œ๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ์ตœ์†Œ ์‹œ๊ฐ„ ๊ตฌํ•˜๊ธฐ โ†’ ๋ฆฌ์ŠคํŠธ์— 1๋ฒˆ๋„์‹œ๊นŒ์ง€์˜ ๋ฐฐ๋‹ฌ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•˜์—ฌ K ์ดํ•˜ ์ธ์ง€๋ฅผ ๋น„๊ตํ•œ๋‹ค.
๋‘ ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ๋Š” ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค โ†’ ๊ทธ ์ค‘์— ์ตœ๋‹จ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ๋„๋กœ๋ฅผ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค
1๋ฒˆ ๋„์‹œ์—์„œ 1๋ฒˆ ๋„์‹œ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋Š” 0์‹œ๊ฐ„์ด๋‹ค โ†’ ์ฝ”๋“œ์—์„œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
๋„์‹œ๊ฐ€ ์ด 50๊ฐœ์ด๋ฏ€๋กœ 1๋ฒˆ์—์„œ ๊ฐ€์žฅ ๋จผ ๋„์‹œ๊นŒ์ง€๋Š” ๊ฑฐ์ณ์•ผํ•˜๋Š” ๋„๋กœ๋Š” 50๊ฐœ ์ดํ•˜์ด๋‹ค. โ†’ ๋”ฐ๋ผ์„œ ๋ฐ˜๋ณต์„ 50๋ฒˆ ์ด์ƒ ํ•ด์ฃผ๋ฉด ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ฑฐ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™” โ†’ min์„ ์‚ฌ์šฉํ•˜๋ฉด 0์ด ํŠ€์–ด๋‚˜์˜จ๋‹ค โ†’ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ์™€ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ„์–ด์„œ ์ƒ๊ฐํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.