전체 글
-
DFS & BFS 기초 문제풀이 < 음료수 얼려 먹기 >Python/알고리즘 2022. 8. 30. 20:16
문제 설명, 조건 ● N x M 크기의 얼음 틀이 있습니다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시됩니다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주합니다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하세요. ● 예 다음의 4 x 5 얼음 틀 예시에서는 아이스크림이 총 3개 생성됩니다. ● 입력 조건 첫 번째 줄에 얼음 틀의 세로 길이 N과 가로 길이 M이 주어집니다. (1
-
BFS (Breadth-First Search)Python/알고리즘 2022. 8. 30. 18:49
너비 우선 탐색 from collections import deque # BFS 메서드 정의 def bfs(graph, start, visited): #큐(Queue) 구현을 위해 deque 라이브러리 사용 queue = deque([start]) #현재 노드를 방문 처리 visited[start] = True #큐가 빌 때까지 반목 while queue: #큐에서 하나의 원소를 뽑아 출력하기 v = queue.popleft() print(v, end=' ') # 아직 방문하지 않은 인접한 원소들을 큐에 삽입 for i in graph[v]: if not visited[i]: queue.append(i) visited[i] = True # 각 노드가 연결된 정보를 표현 (2차원 리스트) graph = [..
-
DFS (Depth-First-Search)Python/알고리즘 2022. 8. 30. 18:30
깊이 우선 탐색 # 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) # 각 노드가 연결된 정보를 표현 (2차원 리스트) graph = [ [], [2, 3, 8], [1, 7], [1, 4, 5], [3, 5], [3, 4], [7], [2, 6, 8], [1, 7] ] # 각 노드가 방문된 정보를 표현 (1차원 리스트) visited = [False] * 9 # 정의된 DFS 함수 호출 dfs(graph, 1, visited) 1 2 7..
-
최대공약수 계산 (유클리드 호제법)Python/알고리즘 2022. 8. 30. 16:54
● 유클리드 호제법 두 자연수 A, B에 대하여 (A > B) A를 B로 나눈 나머지를 R이라고 합시다. 이때 A와 B의 최대공약수는 B와 R의 최대공약수와 같습니다. ● 예시 GCD(192, 162) def gcd(a, b): if a % b == 0: return b else: return gcd(b, a%b) print(gcd(192, 162)) 6 출처 : https://www.youtube.com/watch?v=7C9RgOcvkvo&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=4
-
알파벳/숫자 확인Python/알고리즘 2022. 8. 27. 01:31
isalpha() 1. 영어 가능 (True) 2. 숫자 불가능 (False) 3. 띄어쓰기 불가능 (False) 4. 특수문자 불가능 (False) 5. 한글 가능 (True) isdigit() 1. 숫자 가능 (True) 2. 영어 불가능 (False) 3. 띄어쓰기 불가능 (False) 4. 특수문자 불가능 (False) 5. 한글 불가능 (False) isalnum() 1. 숫자 가능 (True) 2. 숫자+영어 가능 (True) 3. 띄어쓰기 불가능 (False) 4. 특수문자 불가능 (False) 5. 숫자+한글 가능 (True) 출처 : https://velog.io/@cutehuman/Python-%EC%95%8C%ED%8C%8C%EB%B2%B3or-%ED%95%9C%EA%B8%80%EC%..