[TIL_Carrotww] 54 - 22/11/17

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

TIL

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

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

๐Ÿงฒ python algorithm

๐Ÿ” programmers ๋ถ€๋Œ€๋ณต๊ท€ level3
๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด ์ค‘๊ฐ„์— ๋ช‡๊ฐœ๊ฐ€ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค.
์ผ๋‹จ ๋ฌธ์ œ๋ฅผ ๋”ฑ ๋ณด๋‹ˆ ๊ทธ๋ƒฅ BFS ๋กœ ํ’€๋ฉด ๋ ๊ฑฐ๊ฐ™์•„์„œ BFS๋กœ ๋ฐ”๋กœ ์ ‘๊ทผํ•ด๋ดค๋‹ค. ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ์ถœ๋ฐœ์ง€ ์ฆ‰ sources ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๋‚˜์™€์„œ ๋‚˜๋Š” ํ•ด๋‹น ์ถœ๋ฐœ์ง€๋ฅผ ๊ทธ๋ƒฅ ๋‹ค ๋Œ๋ ค์ฃผ์—ˆ๋‹ค.
์ผ๋‹จ ํ’€์ด๋ฅผ ๋ณด์ž

  • ์ฒซ ๋ฒˆ์งธ ํ’€์ด
from collections import deque, defaultdict
import math

def solution(n, roads, sources, destination):
    roads_path = defaultdict(list)
    for a, b in roads:
        roads_path[a].append(b)
        roads_path[b].append(a)

    result = []
    for so in sources:
        queue = deque([so])
        visited = {x:math.inf for x in range(1, n + 1)}
        visited[so] = 0
        # x -> n ; value -> so ์™€์˜ ๊ฑฐ๋ฆฌ
        while queue:
            if visited[destination] != math.inf:
                result.append(visited[destination])
                break
            cur_road = queue.popleft()
            cur_path = visited[cur_road]
            for next_road in roads_path[cur_road]:
                if visited[next_road] > cur_path + 1:
                    visited[next_road] = cur_path + 1
                    queue.append(next_road)
        if visited[destination] == math.inf:
            result.append(-1)
    return result


์ง€๊ธˆ ์ ์œผ๋ฉด์„œ ์™œ ์•ˆ๋ ๊นŒ ์ƒ๊ฐ์„ ํ•ด ๋ณธ ๊ฒฐ๊ณผ
BFS ๋Š” ๋„์ฐฉ์„ ํ•œ ๊ณณ์ด ์ตœ์†Œ๋ผ๋Š”๊ฒŒ ๋ณด์žฅ์ด ๋˜๋Š”๋ฐ ๋‚˜๋Š” ๊ทธ ๊ฒƒ์„ ์–ด๊ธฐ๊ณ (?) ๊นŒ์ง€๋Š” ์•„๋‹ˆ์ง€๋งŒ DP ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋“  ๋…ธ๋“œ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๋ฆฌํ„ดํ•ด ์ฃผ์–ด์„œ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™๋‹ค.
visited๋ฅผ ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ”๊พธ์–ด ์ฃผ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.
๊ทผ๋ฐ ์ง„์งœ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๋Šฆ์–ด์„œ...
๋‚ด์ผ ํ•ด๋ด์•ผ๊ฒ ๋‹ค.

๐Ÿงฒ Neural-Style-Transfer

๐Ÿ” ํ•ด๋‹น ๋ฐฉ์‹์œผ๋กœ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•ด๋ณด์•˜๋Š”๋ฐ ์–ด๋–ค ์ด๋ฏธ์ง€๋Š” ์ž˜ ๋˜๊ณ  ์–ด๋–ค ์ด๋ฏธ์ง€๋Š” ์ž˜ ์•ˆ๋˜์–ด์„œ
์—ด์‹ฌํžˆ ๊ฒ€์ƒ‰์„ ํ•ด๋ณด์•˜๋‹ค.
์˜ค๋ฅ˜๋Š” ์ด๋ ‡๋‹ค.


์ž˜ ๊ฒ€์ƒ‰ํ•ด๋ณธ ๊ฒฐ๊ณผ depth: 4 vs 3 ์ด์ชฝ์—์„œ ์ฒ˜๋ฆฌ๊ฐ€ ์•ˆ๋œ๊ฒƒ ๊ฐ™์•˜๋‹ค.
์ž˜์€ ๋ชจ๋ฅด์ง€๋งŒ RGB ๊ฐ’์˜ 4์ฐจ์›์ธ์ง€ 3์ฐจ์›์ธ์ง€ ๊ทธ๋Ÿฐ๊ฒŒ ์•ˆ๋งž์•„์„œ ์•ˆ๋˜๋Š” ๊ฑฐ๋ผ๊ณ  ํ•œ๋‹ค.
๊ทธ๋ž˜์„œ ํ•ด๋‹น ์ด๋ฏธ์ง€๋“ค์˜ shape ๊ฐ’์„ ์ถœ๋ ฅํ•ด๋ณด์•˜๋‹ค.

๊ทธ๋ ‡๋‹ค. X ํ‘œ์‹œ๊ฐ€ ์•ˆ๋˜๋Š” ๋ชฉ๋ก์ธ๋ฐ
์ˆซ์ž 4๋กœ ์ฐํžˆ๋Š” ์‚ฌ์ง„๋“ค์ด ์•ˆ๋˜๋Š” ์‚ฌ์ง„๋“ค์ด์—ˆ๋‹ค.
๊ทธ๋ž˜์„œ ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผ๊ฐ€์„œ...

์š”๋กœ์ฝ”๋กฌ ๋ฐ”๊พธ์–ด ์ฃผ์—ˆ๋‹ค.
4 ๋ณด๋‹ค ๋†’์€ ์ˆซ์ž์˜ ์ฐจ์›์œผ๋กœ ์ถœ๋ ฅ๋  ์ˆ˜ ์žˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ 3์œผ๋กœ ๊ณ ์ •์„ ์‹œ์ผœ๋ฒ„๋ ธ๋‹ค.
๊ทธ๋žฌ๋”๋‹ˆ ๋„ˆ~~ ๋ฌด ์ž˜ ๋‚˜์˜จ๋‹ค.
์˜ค๋Š˜~ ๋!

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