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

๐Ÿ’ป Programming/์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ…Œ์ŠคํŠธ17

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ž๋ฌผ์‡ ์™€ ์—ด์‡  (์™„์ „ ํƒ์ƒ‰) ๋ฌธ์ œ ํ’€์ด ์—ด์‡ ๋ฅผ ์ ๋‹นํžˆ ํšŒ์ „/์ด๋™์‹œ์ผœ์„œ ์ž๋ฌผ์‡  ํ™ˆ์— ๋”ฑ ๋งž๊ฒŒ ๋ผ์›Œ์•ผ ํ•œ๋‹ค. ์—ด์‡ ์™€ ์ž๋ฌผ์‡  ์‚ฌ์ด์ฆˆ๊ฐ€ ํฌ์ง€ ์•Š์œผ๋ฏ€๋กœ ์™„์ „ํƒ์ƒ‰์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜์›”ํ•œ ํ’€์ด๋ฅผ ์œ„ํ•ด ์ž๋ฌผ์‡  ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ๋ฅผ 3๋ฐฐ ์ด์ƒ์œผ๋กœ ๋ณ€๊ฒฝ(์ž๋ฌผ์‡ ๋ฅผ ์ค‘๊ฐ„์— ๋‘๊ณ  ๋‚˜๋จธ์ง€๋Š” zero padding)ํ•˜๊ณ  ์—ด์‡ ๋ฅผ ์Šฌ๋ผ์ด๋”ฉ/ํšŒ์ „ ์‹œํ‚ค๋ฉด์„œ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋ฅผ 90๋„ ํšŒ์ „์‹œํ‚ค๋Š” ํ•จ์ˆ˜์™€ ์ž๋ฌผ์‡  ๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„ ๋ถ€๋ถ„์ด ๋ชจ๋‘ 1์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค. ๋ฉ”์ธ์ธ solution ํ•จ์ˆ˜์—์„œ๋Š” ์ž๋ฌผ์‡ ์˜ ํฌ๊ธฐ๋ฅผ 3๋ฐฐ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ƒˆ๋กœ์šด ์ž๋ฌผ์‡  ๋ฆฌ์ŠคํŠธ ์ค‘๊ฐ„์— ๊ธฐ์กด์˜ ์ž๋ฌผ์‡ ๋ฅผ ๋„ฃ๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  4๊ฐ€์ง€ ๋ฐฉํ–ฅ๊ณผ ์—ด์‡ ๊ฐ€ ์ด๋™ํ•˜๋Š” ํ•˜๋Š” ๊ฒƒ์„ for๋ฌธ์„ ๋ˆ๋‹ค. ์—ด์‡ ๋Š” ๊ฐ ์œ„์น˜์—์„œ ์ž๋ฌผ์‡ ์— ๋„ฃ๊ณ  ์—ด์‡ ๊ฐ€ ์ž๋ฌผ์‡ ์— ์ •ํ™•ํžˆ ๋“ค์–ด๋งž๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋‹ค์‹œ ์ž๋ฌผ์‡ ์—์„œ ์—ด์‡ ๋ฅผ ๋นผ.. 2022. 2. 14.
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์นดํŽซ (์™„์ „ ํƒ์ƒ‰) ๋ฌธ์ œ ํ’€์ด ์นดํŽซ ๊ทธ๋ฆผ์„ ๋ณด๊ณ  ๊ฐ€๋กœ๊ธธ์ด = a, ์„ธ๋กœ๊ธธ์ด = b ๋กœ ๋‘๊ณ  ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ์‹์„ ๋งŒ๋“ค๊ณ  for ๋ฌธ ๋Œ๋ฉด์„œ if ๋ฌธ์œผ๋กœ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฐพ์œผ๋ฉด ๋œ๋‹ค. def solution(brown, yellow): total = brown + yellow for b in range(1, total+1): if total/b % 1 == 0: a = total/b if a>=b: if ((a-2)*(b-2) == yellow) and (2*a + 2*b -4 == brown): return [int(a),int(b)] 2022. 2. 14.
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_ํƒ€๊ฒŸ๋„˜๋ฒ„ (DFS&BFS) ๋ฌธ์ œ ํ’€์ด BFS ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ ์ˆ˜๋ฅผ ๋”ํ•˜๊ณ  ๋นผ๋Š” ๊ฒฝ์šฐ ๋‘๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ํ์— ๋„ฃ์œผ๋ฉด์„œ BFS๋ฅผ ์ง„ํ–‰์‹œํ‚ค๊ณ  target ๊ณผ ๋™์ผํ•œ ๊ฒฝ์šฐ์— ์นด์šดํŠธํ•ด์ค€๋‹ค. ์ฝ”๋“œ from collections import deque def solution(numbers, target): answer = 0 queue = deque() n = len(numbers) queue.append([numbers[0],0]) queue.append([-1*numbers[0],0]) while queue: temp, idx = queue.popleft() idx += 1 if idx < n: queue.append([temp+numbers[idx], idx]) queue.append([temp-numbers[idx], id.. 2022. 2. 6.
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_๋‹จ์–ด๋ณ€ํ™˜ (DFS&BFS) ๋ฌธ์ œ ํ’€์ด BFS ๋กœ ํ’€ ์ˆ˜ ์žˆ๊ณ , ํ˜„์žฌ ๋‹จ์–ด์™€ words ์ค‘์— ๋‹จ์–ด ํ•˜๋‚˜๋งŒ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์— ํ•ด๋‹น words ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ณ  ์นด์šดํŠธํ•ด์ค€๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋ฐ˜๋ณตํ•˜๋‹ค๊ฐ€ ํ˜„์žฌ ๋‹จ์–ด๊ฐ€ target ๋‹จ์–ด์™€ ๊ฐ™์•„ ์ง€๋Š” ์ˆœ๊ฐ„ BFS ์ข…๋ฃŒํ•˜๊ณ  ์นด์šดํŠธํ•œ ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค. ์ฝ”๋“œ def bfs(begin, target, words, visited): count = 0 stack = [(begin, 0)] while stack: cur, depth = stack.pop() if cur == target: # target์— ๋„๋‹ฌํ–ˆ์œผ๋ฉด depth ๋ฆฌํ„ด return depth for i in range(len(words)): if visited[i] == True: # ์ด๋ฏธ ์ง€๋‚˜์ณค๋˜ words ์ด๋ฉด ํŒจ์Šค continue cnt = 0 for a.. 2022. 2. 6.
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_๋„คํŠธ์›Œํฌ (DFS&BFS) ๋ฌธ์ œ ํ’€์ด ๋ชจ๋“  ์ปดํ“จํ„ฐ๋ฅผ ๋Œ๋ฉด์„œ ๋ฐฉ๋ฌธ ์•ˆํ•œ ์œ„์น˜์— ๋ฐฉ๋ฌธํ•˜์—ฌ DFS๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ํ•˜๋‚˜์˜ DFS๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด +1 ํ•ด์„œ ๋„คํŠธ์›Œํฌ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , DFS ํ•จ์ˆ˜๋Š” ํ•ด๋‹น ์œ„์น˜๋ฅผ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ชจ๋“  ์ปดํ“จํ„ฐ๋ฅผ for๋ฌธ์œผ๋กœ ํ™•์ธํ•˜๋ฉด์„œ ์ž๊ธฐ ์ž์‹ ์ด ์•„๋‹ˆ๊ณ  ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ๊ทธ๋ฆฌ๊ณ  ๋ฐฉ๋ฌธ์„ ์•ˆํ•œ ๊ฒฝ์šฐ์— DFS๋กœ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ฝ”๋“œ def solution(n, computers): answer = 0 visited = [False]*n # ์ปดํ“จํ„ฐ ๊ฐœ์ˆ˜ ๋งŒํผ for com in range(n): # ๊ฐ ์ปดํ“จํ„ฐ๋ฅผ ๋Œ๋ฉด์„œ ๋ฐฉ๋ฌธ ์•ˆํ–ˆ์œผ๋ฉด DFS if visited[com] == False : DFS(n, computers, com, visited) answer +=1 # ์—ฐ๊ฒฐ๋œ ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ +1 return answe.. 2022. 2. 6.
[python] ๋ฐฑ์ค€18405_๊ฒฝ์Ÿ์  ์ „์—ผ (DFS&BFS) ๋ฌธ์ œ ํ’€์ด BFS๋ฅผ ์ด์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๊ณ , ๊ฐ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ๋‚ฎ์€ ๋ฒˆํ˜ธ๋ถ€ํ„ฐ ์ฆ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ์— ํ์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ ๋‚ฎ์€ ๋ฐ”์ด๋Ÿฌ์Šค์˜ ๋ฒˆํ˜ธ๋ถ€ํ„ฐ ์‚ฝ์ž…ํ•ด์•ผ ํ•œ๋‹ค. ํ์—์„œ ๋‚ฎ์€ ๋ฐ”์ด๋Ÿฌ์Šค ๋ฒˆํ˜ธ๋ถ€ํ„ฐ popํ•˜์—ฌ ์ƒํ•˜์ขŒ์šฐ๋กœ ๋ฐ”์ด๋Ÿฌ์Šค ๋ฒˆ์‹์‹œํ‚ค๊ณ , ๋ฒˆ์‹๋œ ์œ„์น˜๋ฅผ ๋‹ค์‹œ ํ์— ๋„ฃ๊ณ , ์›ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ฝ”๋“œ from collections import deque n, k = map(int,input().split()) graph = [] # ์ „์ฒด ๋ณด๋“œ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๋ฆฌ์ŠคํŠธ data = [] # ๋ฐ”์ด๋Ÿฌ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๋ฆฌ์ŠคํŠธ for i in range(n): # ๋ณด๋“œ ์ •๋ณด๋ฅผ ํ•œ ์ค„ ๋‹จ์œ„๋กœ ์ž…๋ ฅ graph.append(list(map(int, input().split()))) for j in range(n):.. 2022. 2. 6.
728x90