[TIL_Carrotww] 53 - 22/11/16

์œ ํ˜•์„ยท2022๋…„ 11์›” 16์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
63/138
post-thumbnail

๐Ÿ“Carrotww์˜ ์ฝ”๋”ฉ ๊ธฐ๋ก์žฅ

๐Ÿงฒ python algorithm

๐Ÿ” programmers ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ Level 3
3๋ ˆ๋ฒจ ์น˜๊ณ ๋Š” ์‰ฝ๋‹ค. bfs๊ฐ€ ์ด์ œ๋Š” ์ œ์ผ ์‰ฌ์šด ๊ฒƒ ๊ฐ™๋‹ค.

  • ํ’€์ด
from collections import deque, defaultdict
import math

def solution(n, edge):
    path = defaultdict(list)

    for a, b in edge:
        path[a].append(b)
        path[b].append(a)

    far = {x:math.inf for x in range(1, n + 1)}

    far[1] = 1
    queue = deque([1])

    while queue:
        cur_node = queue.popleft()
        cur_far = far[cur_node]
        for i in path[cur_node]:
            if cur_far + 1 < far[i]:
                far[i] = cur_far + 1
                queue.append(i)

    return list(far.values()).count(max(far.values()))

far ์ด๋ผ๋Š” ๋”•์…˜์–ด๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ key ๊ฐ’์— n ๋งŒํผ ๋„ฃ์–ด์ฃผ๊ณ  value์— ๋ฌดํ•œ๋Œ€ ๊ฐ’์„ ์ค€ ๋‹ค์Œ ๋ฐฉ๋ฌธ ์‹œ ๊ฑฐ๋ฆฌ๊ฐ€ ์ž‘์„๋•Œ ๊ฐฑ์‹  ํ•˜๋Š” ์‹์œผ๋กœ DP ๋Š๋‚Œ์œผ๋กœ ํ’€์–ด์กŒ๋‹ค.
far ๊ฐ€ ๋ฆฌ์ŠคํŠธ๋กœ ๋˜์–ด์žˆ์„๋•Œ๋Š” ์—„์ฒญ ๋Š๋ ธ๋Š”๋ฐ dict๋กœ ๋ฐ”๊พธ๊ณ  ๋‚˜๋‹ˆ 10๋ฐฐ๋Š” ๋นจ๋ผ์กŒ๋‹ค.

return ๊ฐ’์— count ๋ฅผ ์จ์ฃผ์—ˆ๋Š”๋ฐ for๋ฌธ์„ ํ•œ ๋ฒˆ ๋” ์“ฐ๋Š”๊ฒŒ ์‹ซ์–ด์„œ ์ €๋ ‡๊ฒŒ ์จ์ฃผ์—ˆ๋‹ค. list๋กœ์˜ ๋ณ€ํ™˜๋„ ์žˆ์–ด์„œ ์–ด๋–ค ๋ฐฉ์‹์ด ๋” ๋น ๋ฅธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ƒ๊ฐ๋‚˜๋Š” ๋Œ€๋กœ ์ผ๋‹จ ์จ๋ดค๋‹ค.
๋‚˜์˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค.

count() ํ•จ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ๋งŒ ๋จน๋Š”๋ฐ far.values() ๊ฐ€ ๋ฆฌ์ŠคํŠธ ํ˜•์‹์œผ๋กœ ๋‚˜์™€์„œ type์ด ๋ฆฌ์ŠคํŠธ ์ธ ์ค„ ์•Œ์•˜๋Š”๋ฐ count๊ฐ€ ์•ˆ๋˜์–ด์„œ ์ €๋ ‡๊ฒŒ ๋ฐ”๊พธ์–ด ์ฃผ์—ˆ๋‹ค.

test = {x:x+1 for x in range(1, 10)}

print(type(test.values())) #<class 'dict_values'>

<class 'dict_values'> ๋ผ๊ณ  ๋‚˜์˜จ๋‹ค.

๐Ÿงฒ ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ ๋ž€?

๐Ÿ” ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ

  • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์‹œ์Šคํ…œ ํ…Œ์ด๋ธ”์ด๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—…์„ ํ•  ๋•Œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์˜ํ•ด ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ๋˜๋Š” ํ…Œ์ด๋ธ”์ด๋‹ค.
  • ์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ง์ ‘ ์ˆ˜์ •, ์‚ญ์ œ ํ•  ์ˆ˜ ์—†๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ๋Š” ์‹œ์Šคํ…œ์ด ๊ด€๋ฆฌํ•˜๋Š” ํ…Œ์ด๋ธ”์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ๋ด๋„ ์•”ํ˜ธ๊ธฐํ˜ธ๋งŒ ๋ณด์—ฌ์ ธ์„œ ์•Œ ์ˆ˜ ์—†๋‹ค.

๐Ÿ” ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ ๋ทฐ

  • ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ์˜ ๋‚ด์šฉ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ œ๊ณตํ•œ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€