๐งฎ PS
-
#๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/2667 2667๋ฒ: ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ ๊ณผ ๊ฐ์ด ์ ์ฌ๊ฐํ ๋ชจ์์ ์ง๋๊ฐ ์๋ค. 1์ ์ง์ด ์๋ ๊ณณ์, 0์ ์ง์ด ์๋ ๊ณณ์ ๋ํ๋ธ๋ค. ์ฒ ์๋ ์ด ์ง๋๋ฅผ ๊ฐ์ง๊ณ ์ฐ๊ฒฐ๋ ์ง์ ๋ชจ์์ธ ๋จ์ง๋ฅผ ์ ์ํ๊ณ , ๋จ์ง์ ๋ฒํธ๋ฅผ ๋ถ์ด๋ ค ํ๋ค. ์ฌ www.acmicpc.net #๋์ด๋ : Silver 1 #๋ถ๋ฅ: DFS #์ฝ๋(Python) import sys sys.setrecursionlimit(10000) n = int(input()) map_ = [] area_cnt = 0 house_cnts = [] def is_valid(x,y): if x >= 0 and y >= 0 and x < n and y < m: return True return Fa..
๋ฐฑ์ค (boj) ํ์ด์ฌ - 2667 : ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ#๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/2667 2667๋ฒ: ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ ๊ณผ ๊ฐ์ด ์ ์ฌ๊ฐํ ๋ชจ์์ ์ง๋๊ฐ ์๋ค. 1์ ์ง์ด ์๋ ๊ณณ์, 0์ ์ง์ด ์๋ ๊ณณ์ ๋ํ๋ธ๋ค. ์ฒ ์๋ ์ด ์ง๋๋ฅผ ๊ฐ์ง๊ณ ์ฐ๊ฒฐ๋ ์ง์ ๋ชจ์์ธ ๋จ์ง๋ฅผ ์ ์ํ๊ณ , ๋จ์ง์ ๋ฒํธ๋ฅผ ๋ถ์ด๋ ค ํ๋ค. ์ฌ www.acmicpc.net #๋์ด๋ : Silver 1 #๋ถ๋ฅ: DFS #์ฝ๋(Python) import sys sys.setrecursionlimit(10000) n = int(input()) map_ = [] area_cnt = 0 house_cnts = [] def is_valid(x,y): if x >= 0 and y >= 0 and x < n and y < m: return True return Fa..
2021.08.25 -
[ํ๋ก๊ทธ๋๋จธ์ค] (Python) - ํ๋ฆฐํฐ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์์ฅ programmers.co.kr * ํ์ด ๋ฌธ์ ์ ์ฐ์ฌ์๋ ๊ทธ๋๋ก ๊ตฌํํ๋ค. ๋ค๋ง ์ฐ์ ์์์ ๋ฐ๋ผ์ ์๋ฆฌ๋ฅผ ์ด๋ํด๋ฒ๋ฆฌ๋ฉด ์ฒ์ ์ธ์๋ชฉ๋ก์ ์๋ฆฌ๊ฐ์ ๋ชจ๋ฅด๊ฒ ๋๋ค. ๊ทธ๋์ priorities = [2, 1, 3, 2] ๋ฅผ ์ธ๋ฑ์ค ๊ฐ์ ์ถ๊ฐํ 2์ค ๋ฆฌ์คํธ๋ก ๋ฐ๊พธ์ด์ฃผ์๋ค. priorities = [ [2, 0] ,[1, 1] , [3,2] , [2. 3] ] ์๊ฐ ์ด๊ณผ๊ฐ ์ฐ๋ ค๋์๋๋ฐ, ๋คํํ ๊ทธ๋ฅ ํต๊ณผ๋์๋ค. * Code - Python def search_list(priorities, now) : for i in priorities : if i[0] > now[0] : return False return True def solution(prior..
[ํ๋ก๊ทธ๋๋จธ์ค] (Python) - ํ๋ฆฐํฐ[ํ๋ก๊ทธ๋๋จธ์ค] (Python) - ํ๋ฆฐํฐ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์์ฅ programmers.co.kr * ํ์ด ๋ฌธ์ ์ ์ฐ์ฌ์๋ ๊ทธ๋๋ก ๊ตฌํํ๋ค. ๋ค๋ง ์ฐ์ ์์์ ๋ฐ๋ผ์ ์๋ฆฌ๋ฅผ ์ด๋ํด๋ฒ๋ฆฌ๋ฉด ์ฒ์ ์ธ์๋ชฉ๋ก์ ์๋ฆฌ๊ฐ์ ๋ชจ๋ฅด๊ฒ ๋๋ค. ๊ทธ๋์ priorities = [2, 1, 3, 2] ๋ฅผ ์ธ๋ฑ์ค ๊ฐ์ ์ถ๊ฐํ 2์ค ๋ฆฌ์คํธ๋ก ๋ฐ๊พธ์ด์ฃผ์๋ค. priorities = [ [2, 0] ,[1, 1] , [3,2] , [2. 3] ] ์๊ฐ ์ด๊ณผ๊ฐ ์ฐ๋ ค๋์๋๋ฐ, ๋คํํ ๊ทธ๋ฅ ํต๊ณผ๋์๋ค. * Code - Python def search_list(priorities, now) : for i in priorities : if i[0] > now[0] : return False return True def solution(prior..
2021.06.23 -
๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/1260 1260๋ฒ: DFS์ BFS ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N(1 ≤ N ≤ 1,000), ๊ฐ์ ์ ๊ฐ์ M(1 ≤ M ≤ 10,000), ํ์์ ์์ํ ์ ์ ์ ๋ฒํธ V๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ์ ์ค์๋ ๊ฐ์ ์ด ์ฐ๊ฒฐํ๋ ๋ ์ ์ ์ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋ค ๋ ์ ์ ์ฌ www.acmicpc.net from collections import deque N, M, V = list(map(int, input().split())) matrix = [[0 for i in range(N+1)] for i in range(N+1)] dfs_answer = [] bfs_answer = [] visited = [False for i in range(N +..
๋ฐฑ์ค (boj) ํ์ด์ฌ - 1260 : DFS์ BFS๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/1260 1260๋ฒ: DFS์ BFS ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N(1 ≤ N ≤ 1,000), ๊ฐ์ ์ ๊ฐ์ M(1 ≤ M ≤ 10,000), ํ์์ ์์ํ ์ ์ ์ ๋ฒํธ V๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ์ ์ค์๋ ๊ฐ์ ์ด ์ฐ๊ฒฐํ๋ ๋ ์ ์ ์ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋ค ๋ ์ ์ ์ฌ www.acmicpc.net from collections import deque N, M, V = list(map(int, input().split())) matrix = [[0 for i in range(N+1)] for i in range(N+1)] dfs_answer = [] bfs_answer = [] visited = [False for i in range(N +..
2021.06.22 -
ํ์ ์๊ณ ๋ฆฌ์ฆ (DFS) DFS์ ์ ์ Depth-First Search : ๊น์ด ์ฐ์ ์๊ณ ๋ฆฌ์ฆ, ๊ทธ๋ํ์ ๊น์ ๋ ธ๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋๋ฌธ์ DFS๋ฅผ ์ดํดํ๋ ค๋ฉด ๊ทธ๋ํ์ ๊ทธ๋ํ ํ์์ ๊ดํ ๋ถ๋ถ์ ์์์ผํ๋ค. + ์คํ(stack) ํํ ๋ฏธ๋ก ํ์์ผ๋ก ๋น์ ํ๋ค. ๋ง๋ค๋ฅธ ๊ธธ์ ๋๋ฌํ ๋ ๊น์ง ํ์ชฝ๋ฐฉํฅ์ ํ์ํ๋ค๊ฐ, ๋์ ๋ณด๋ฉด ๋ค์ ๊ฐ๋ฆผ๊ธธ๋ก ๋์์์ ๋ค๋ฅธ ๊ธธ์ ํ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์์ ํ์์ ์ผ์ข ์ด๋ค. DFS์ ์ฅ์ ํ์ฌ ํ์์ค์ธ ๋ ธ๋๋ค๋ง ๊ธฐ์ตํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ์ ๊ณ , ๋น์ฐํ ์ด์ผ๊ธฐ์ง๋ง ์ฐพ์ผ๋ ค๋ ๋ ธ๋๊ฐ ๊น์ ๊ฒฝ์ฐ์ BFS๋ณด๋ค ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋ค. DFS ๋จ์ ํด๊ฐ ์๋ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ ๊ฒฝ์ฐ์๋ ๊ฒฝ๋ก๊ฐ ๋๋ ๋ ๊น์ง ํ์ํ๋ค. (์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์กฐ๊ฑด์ ์ง์ ํ๊ณ ์๋ ์์น๋ก ๋๋์์ค๋ ..
DFS (๊น์ด ์ฐ์ ํ์) , BFS (๋๋น ์ฐ์ ํ์)ํ์ ์๊ณ ๋ฆฌ์ฆ (DFS) DFS์ ์ ์ Depth-First Search : ๊น์ด ์ฐ์ ์๊ณ ๋ฆฌ์ฆ, ๊ทธ๋ํ์ ๊น์ ๋ ธ๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋๋ฌธ์ DFS๋ฅผ ์ดํดํ๋ ค๋ฉด ๊ทธ๋ํ์ ๊ทธ๋ํ ํ์์ ๊ดํ ๋ถ๋ถ์ ์์์ผํ๋ค. + ์คํ(stack) ํํ ๋ฏธ๋ก ํ์์ผ๋ก ๋น์ ํ๋ค. ๋ง๋ค๋ฅธ ๊ธธ์ ๋๋ฌํ ๋ ๊น์ง ํ์ชฝ๋ฐฉํฅ์ ํ์ํ๋ค๊ฐ, ๋์ ๋ณด๋ฉด ๋ค์ ๊ฐ๋ฆผ๊ธธ๋ก ๋์์์ ๋ค๋ฅธ ๊ธธ์ ํ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์์ ํ์์ ์ผ์ข ์ด๋ค. DFS์ ์ฅ์ ํ์ฌ ํ์์ค์ธ ๋ ธ๋๋ค๋ง ๊ธฐ์ตํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ์ ๊ณ , ๋น์ฐํ ์ด์ผ๊ธฐ์ง๋ง ์ฐพ์ผ๋ ค๋ ๋ ธ๋๊ฐ ๊น์ ๊ฒฝ์ฐ์ BFS๋ณด๋ค ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋ค. DFS ๋จ์ ํด๊ฐ ์๋ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ ๊ฒฝ์ฐ์๋ ๊ฒฝ๋ก๊ฐ ๋๋ ๋ ๊น์ง ํ์ํ๋ค. (์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์กฐ๊ฑด์ ์ง์ ํ๊ณ ์๋ ์์น๋ก ๋๋์์ค๋ ..
2021.06.22 -
์คํ(Stack) ์ ์ ํ์ถ์ ํน์ง์ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด๋ค. (ํํ ๋ฐ์ค์๊ธฐ์ ๋น์ ) ์ปดํจํฐ ๋ด๋ถ์์ ์ฌ๊ทํจ์์ ๊ตฌํ์ ์คํ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. Python์์ ์คํ์ ์ฌ์ฉํ ๋๋ ํน๋ณํ ๊ตฌํ ํ์์์ด, .append() ํจ์์ .pop() ๋ง์ ์ฌ์ฉํ๋ฉด ๊ทธ๋๋ก ์คํ์ ๊ตฌํํ ์ ์๋ค. Python - stack stack = [] stack.append(3) stack.append(4) stack.pop() ํ(Queue) ์ ์ ์ ์ถ์ ํน์ง์ ๊ฐ์ก๋ค. (ํํ ์ค์๊ธฐ์ ๋น์ ) ์ฝ์ ๋๋ ๊ณณ์ front ์ ๊ฑฐ๋๋๊ณณ์ back ์ด๋ผ๊ณ ํ๋ค. BFS(๋๋น ์ฐ์ ํ์) ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค. deque์ append ํจ์๋ง ์ถ๊ฐํ๊ณ , popleft()๋ก๋ง ์ญ์ ํ๋ฉด ํ์ด๋ค. ๋ฑ(Deque) ์คํ๊ณผ ํ์ ์ฅ์ ์ ๋ชจ๋ ๊ฐ๊ณ ์๋ค. ..
์คํ, ํ, ๋ฑ (stack, queue, daque)์คํ(Stack) ์ ์ ํ์ถ์ ํน์ง์ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด๋ค. (ํํ ๋ฐ์ค์๊ธฐ์ ๋น์ ) ์ปดํจํฐ ๋ด๋ถ์์ ์ฌ๊ทํจ์์ ๊ตฌํ์ ์คํ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. Python์์ ์คํ์ ์ฌ์ฉํ ๋๋ ํน๋ณํ ๊ตฌํ ํ์์์ด, .append() ํจ์์ .pop() ๋ง์ ์ฌ์ฉํ๋ฉด ๊ทธ๋๋ก ์คํ์ ๊ตฌํํ ์ ์๋ค. Python - stack stack = [] stack.append(3) stack.append(4) stack.pop() ํ(Queue) ์ ์ ์ ์ถ์ ํน์ง์ ๊ฐ์ก๋ค. (ํํ ์ค์๊ธฐ์ ๋น์ ) ์ฝ์ ๋๋ ๊ณณ์ front ์ ๊ฑฐ๋๋๊ณณ์ back ์ด๋ผ๊ณ ํ๋ค. BFS(๋๋น ์ฐ์ ํ์) ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค. deque์ append ํจ์๋ง ์ถ๊ฐํ๊ณ , popleft()๋ก๋ง ์ญ์ ํ๋ฉด ํ์ด๋ค. ๋ฑ(Deque) ์คํ๊ณผ ํ์ ์ฅ์ ์ ๋ชจ๋ ๊ฐ๊ณ ์๋ค. ..
2021.06.16 -
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm) ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ "๋งค ์ ํ์์ ๋น์ฅ ์ข์๊ฒ๋ง์ ์ ํํด ๋๊ฐ๋ ๋ฐฉ๋ฒ"์ ๋ปํ๋ค. ํน์ ๊ธฐ์ค์ ๋ฐ๋ผ์ ์ข์ ๊ฒ์ ์ ํํด์ผํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ์์ ์ด๋์ ๋ ์ ์ํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ์ข๋ค, ๋์๋ค์ ๊ธฐ์ค์ ์ธ์์ผํ๊ธฐ ๋๋ฌธ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์์ฌ์ ๋์ค๋ ๋ฌธ์ ๋ค์ด ๋ง๋ค. ๊ฐ๋จํ ์์ (๊ฑฐ์ค๋ฆ ๋) ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํํ๋ ๋ฌธ์ ๋ก '๊ฑฐ์ค๋ฆ ๋' ๋ฌธ์ ๊ฐ ์๋ค. ์ํ๊ธฐ์ ๊ฑฐ์ค๋ฆ๋์ ๋ฐฐ์ถํด์ผ ํ๋๋ฐ , ์ํ๊ธฐ์๋ 500, 100, 50, 10์์ง๋ฆฌ๊ฐ ๋ฌด์ํ ์กด์ฌํ๋ค. ์ด๋ ๊ฑฐ์ฌ๋ฌ์ค ์ต์ ๋์ ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ผ. (๋จ, ๊ฑฐ์ค๋ฆ ๋์ ํญ์ 10์ ๋ฐฐ์์ด๋ค.) ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด, ๋ฌด์กฐ๊ฑด ํฐ ๋จ์์ ๋์ (500์)์ผ๋ก ์ต๋ํ ๊ฑฐ์ฌ๋ฌ์ฃผ๊ณ , ๊ทธ ๋ค์ ๊ฐ๋ฅํ ํฐ ๋จ์์ ๋์ (..
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ (Greedy Algorithm) , ํ์๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm) ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ "๋งค ์ ํ์์ ๋น์ฅ ์ข์๊ฒ๋ง์ ์ ํํด ๋๊ฐ๋ ๋ฐฉ๋ฒ"์ ๋ปํ๋ค. ํน์ ๊ธฐ์ค์ ๋ฐ๋ผ์ ์ข์ ๊ฒ์ ์ ํํด์ผํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ์์ ์ด๋์ ๋ ์ ์ํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ์ข๋ค, ๋์๋ค์ ๊ธฐ์ค์ ์ธ์์ผํ๊ธฐ ๋๋ฌธ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์์ฌ์ ๋์ค๋ ๋ฌธ์ ๋ค์ด ๋ง๋ค. ๊ฐ๋จํ ์์ (๊ฑฐ์ค๋ฆ ๋) ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํํ๋ ๋ฌธ์ ๋ก '๊ฑฐ์ค๋ฆ ๋' ๋ฌธ์ ๊ฐ ์๋ค. ์ํ๊ธฐ์ ๊ฑฐ์ค๋ฆ๋์ ๋ฐฐ์ถํด์ผ ํ๋๋ฐ , ์ํ๊ธฐ์๋ 500, 100, 50, 10์์ง๋ฆฌ๊ฐ ๋ฌด์ํ ์กด์ฌํ๋ค. ์ด๋ ๊ฑฐ์ฌ๋ฌ์ค ์ต์ ๋์ ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ผ. (๋จ, ๊ฑฐ์ค๋ฆ ๋์ ํญ์ 10์ ๋ฐฐ์์ด๋ค.) ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด, ๋ฌด์กฐ๊ฑด ํฐ ๋จ์์ ๋์ (500์)์ผ๋ก ์ต๋ํ ๊ฑฐ์ฌ๋ฌ์ฃผ๊ณ , ๊ทธ ๋ค์ ๊ฐ๋ฅํ ํฐ ๋จ์์ ๋์ (..
2021.06.13