๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ286

[์ด์ฝ”ํ…Œ]๋–ก๋ณถ์ด ๋–ก ๋งŒ๋“ค๊ธฐ / [๋ฐฑ์ค€]2805๋ฒˆ: ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ https://www.acmicpc.net/problem/2805 2805๋ฒˆ: ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ ์ฒซ์งธ ์ค„์— ๋‚˜๋ฌด์˜ ์ˆ˜ N๊ณผ ์ƒ๊ทผ์ด๊ฐ€ ์ง‘์œผ๋กœ ๊ฐ€์ ธ๊ฐ€๋ ค๊ณ  ํ•˜๋Š” ๋‚˜๋ฌด์˜ ๊ธธ์ด M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) ๋‘˜์งธ ์ค„์—๋Š” ๋‚˜๋ฌด์˜ ๋†’์ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‚˜๋ฌด์˜ ๋†’์ด์˜ ํ•ฉ์€ ํ•ญ์ƒ M๋ณด www.acmicpc.net ๋‘˜์ด ๊ฐ™์€ ๋ฌธ์ œ์ž„ ์ฒ˜์Œ์—๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ ๋ฐฐ์—ด์„ ์ •๋ ฌ์„ ํ•˜๊ณ , ๋†’์ด๋ฅผ ๋ฐฐ์—ด์š”์†Œ์˜ ์ตœ๋Œ“๊ฐ’์œผ๋กœ๋ถ€ํ„ฐ 1์”ฉ ์ค„์—ฌ๋‚˜๊ฐ€๋ฉฐ ๋งค๋ฒˆ ์ž˜๋ฆฐ ๋‚˜๋ฌด์˜ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐ, ๋น„๊ตํ•ด๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์„ ์ƒ๊ฐํ–ˆ๋‹ค ๊ทผ๋ฐ ์ด๊ฑด ๋„ˆ๋ฌด ๋ฌด์‹ํ•œ ๋ฐฉ๋ฒ•์ด๊ธฐ๋„ ํ•˜๊ณ  ๋ฌด์—‡๋ณด๋‹ค ์‹œ๊ฐ„์ด ์—„์ฒญ ์˜ค๋ž˜ ๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™์•˜์Œ ๊ทธ๋ž˜์„œ ์ด์ง„ํƒ์ƒ‰์œผ๋กœ ํ’€์—ˆ๋‹ค. ์ด์ง„ํƒ์ƒ‰์œผ๋กœ ํ’€๋ฉด ํƒ์ƒ‰๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ค„์—ฌ๊ฐ€๋ฉฐ ํ’€ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์—ฐ์‚ฐ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๋ˆˆ์— .. 2023. 2. 24.
[์ด์ฝ”ํ…Œ] ๋‘ ๋ฐฐ์—ด์˜ ์›์†Œ ๊ต์ฒด ์ถœ์ฒ˜: ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ (๋‚˜๋™๋นˆ) https://www.youtube.com/watch?v=94RC-DsGMLo&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=5 ๋ฌธ์ œ ๋ˆ๋นˆ์ด๋Š” ๋‘ ๊ฐœ์˜ ๋ฐฐ์—ด A์™€ B๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฐฐ์—ด์€ N๊ฐœ์˜ ์›์†Œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฐฐ์—ด์˜ ์›์†Œ๋Š” ๋ชจ๋‘ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋™๋นˆ์ด๋Š” ์ตœ๋Œ€ K๋ฒˆ์˜ ๋ฐ”๊ฟ”์น˜๊ธฐ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ฐ”๊ฟ”์น˜๊ธฐ ์—ฐ์‚ฐ์ด๋ž€ ๋ฐฐ์—ด A์— ์žˆ๋Š” ์›์†Œ ํ•˜๋‚˜์™€ ๋ฐฐ์—ด B์— ์žˆ๋Š” ์›์†Œ ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ์„œ ๋‘ ์›์†Œ๋ฅผ ์„œ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋™๋นˆ์ด์˜ ์ตœ์ข… ๋ชฉํ‘œ๋Š” ๋ฐฐ์—ด A์˜ ๋ชจ๋“  ์›์†Œ์˜ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ์—ฌ๋Ÿฌ๋ถ„์€ ๋™๋นˆ์ด๋ฅผ ๋„์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. N,K ๊ทธ๋ฆฌ๊ณ  ๋ฐฐ์—ด A์™€ B์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ.. 2023. 2. 23.
[๋ฐฑ์ค€]4963๋ฒˆ: ์„ฌ์˜ ๊ฐœ์ˆ˜ https://www.acmicpc.net/problem/4963 4963๋ฒˆ: ์„ฌ์˜ ๊ฐœ์ˆ˜ ์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ์ง€๋„์˜ ๋„ˆ๋น„ w์™€ ๋†’์ด h๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. w์™€ h๋Š” 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์–‘์˜ ์ •์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ h๊ฐœ ์ค„์—๋Š” ์ง€๋„ www.acmicpc.net dfs๋กœ ํ’€์—ˆ๋”๋‹ˆ RecursionError๊ฐ€ ๋‚˜์„œ.. ์ด์œ ๋ฅผ ์ฐพ์•„๋ณด๋‹ˆ๊นŒ BOJ ์ฑ„์  ์„œ๋น„์Šค์—์„œ๋Š” ํŒŒ์ด์ฌ ์ตœ๋Œ€ ์žฌ๊ท€ ๊นŠ์ด๊ฐ€ 1000์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊น ํ…Œ์ผ€์ค‘์—์„œ ์žฌ๊ท€๋ฅผ 1000๋ฒˆ ์ด์ƒ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒŒ ์žˆ์—ˆ๋‚˜๋ณด๋‹ค \ํ•ด๊ฒฐ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ์ค‘์—์„œ ์ ค ์‰ฌ์šด๊ฑฐ ์„ ํƒํ•จ ^v^ import sys sys.setrecursionlimit(10**6) ์ตœ๋Œ€์žฌ๊ท€๊นŠ์ด๋ฅผ ์ž„์˜๋กœ ๊ฒ๋‚˜ ํฐ ์ˆ˜.. 2023. 2. 23.
[์ด์ฝ”ํ…Œ]๋ฏธ๋กœ ํƒˆ์ถœ / [๋ฐฑ์ค€]2178๋ฒˆ: ๋ฏธ๋กœ ํƒ์ƒ‰ https://www.acmicpc.net/problem/2178 2178๋ฒˆ: ๋ฏธ๋กœ ํƒ์ƒ‰ ์ฒซ์งธ ์ค„์— ๋‘ ์ •์ˆ˜ N, M(2 ≤ N, M ≤ 100)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” M๊ฐœ์˜ ์ •์ˆ˜๋กœ ๋ฏธ๋กœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ๊ฐ์˜ ์ˆ˜๋“ค์€ ๋ถ™์–ด์„œ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net from collections import deque #๋ฏธ๋กœ ์ •๋ณด ์ž…๋ ฅ๋ฐ›๊ธฐ n, m = map(int,input().split()) graph=[] for i in range(n): graph.append(list(map(int,input()))) #์ƒํ•˜์ขŒ์šฐ ์ขŒํ‘œ dx=[-1,1,0,0] dy=[0,0,-1,1] #(0,0) ์‹œ์ž‘์ ์œผ๋กœ bfs ์ˆ˜ํ–‰ q=deque() q.append((0,0)) while q: x,y = q.po.. 2023. 2. 23.
[์ด์ฝ”ํ…Œ] ์Œ๋ฃŒ์ˆ˜ ์–ผ๋ ค ๋จน๊ธฐ ์ถœ์ฒ˜: ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ(๋‚˜๋™๋นˆ) https://www.youtube.com/watch?v=7C9RgOcvkvo&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=3 ๋ฌธ์ œ N * M ํฌ๊ธฐ์˜ ์–ผ์Œ ํ‹€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๋ฉ์ด ๋šซ๋ ค ์žˆ๋Š” ๋ถ€๋ถ„์€ 0, ์นธ๋ง‰์ด๊ฐ€ ์กด์žฌํ•˜๋Š” ๋ถ€๋ถ„์€ 1๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฉ์ด ๋šซ๋ ค ์žˆ๋Š” ๋ถ€๋ถ„๋ผ๋ฆฌ ์ƒ,ํ•˜,์ขŒ,์šฐ๋กœ ๋ถ™์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ์–ผ์Œ ํ‹€์˜ ๋ชจ์–‘์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ์ƒ์„ฑ๋˜๋Š” ์ด ์•„์ด์Šคํฌ๋ฆผ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋ฌธ์ œ ์กฐ๊ฑด ์ž…๋ ฅ ์กฐ๊ฑด: ์ฒซ ๋ฒˆ์งธ ์ค„์— ์–ผ์Œ ํ‹€์˜ ์„ธ๋กœ ๊ธธ์ด N๊ณผ ๊ฐ€๋กœ ๊ธธ์ด M์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. (1 2023. 2. 23.
dfs, bfs ํŒŒ์ด์ฌ ๊ตฌํ˜„ dfs def dfs(graph, v, visited): visited[v]=True print(v, end=' ') for i in graph[v]: if not visited[i]: dfs(graph,i,visited) graph=[ [], #์ธ๋ฑ์Šค 0์€ ๋น„์›Œ๋‘  [2,3,8], #์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ์™€ ์ธ์ ‘ํ•œ ๋…ธ๋“œ ๋ชฉ๋ก [1,7], [1,4,5], [3,5], [3,4], [7], [2,6,8], [1,7] ] visited = [False]*9 dfs(graph,1,visited) bfs from collections import deque def bfs(graph, v, visited): q=deque([v]) #ํ ์ƒ์„ฑ visited[v]=True #๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ while q: #ํ๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š์€๋™์•ˆ w .. 2023. 2. 23.
728x90