본문 바로가기
728x90

ALGORITHM142

[SWEA/Python] 4871. 그래프 경로 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 dfs 적용해보기! dfs는 아직도 너무 어렵다😭 코드 구현은 했지만 아직도 알듯말듯,, 이 문제의 경우에는 방향이 있는 경로라서 간선 입력 시 한 번만 입력하면 된다. 📌 코드 - 스택으로 풀기 import sys sys.stdin = open('input.txt') def dfs_stack(v, e): stack = [] stack.append(v) while stack: v = stack.pop() if visited[v] == 0: visited[v] = .. 2021. 8. 24.
[SWEA/Python] 4869. 종이붙이기 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 - 점화식 구하는 부분이 제일 어려웠다😭😭😭 N이 10의 배수로 들어오지만, 10으로 나누어서 1, 2, 3... 이렇게 들어온다고 가정했을때, 우선 N이 1과 2일 때는 다음과 같이 표현할 수 있다. 임의의 수 N이 입력되었을 때는 아래와 같이 표현할 수 있다. 이를 이용하여 점화식을 계산해보면, f(N) = f(N-1) + 2*f(N-2) 가 나오게 된다. 2를 표현하는 방법은 2개이므로 N-2일때는 2를 곱해준다. 점화식만 구한다면 쉽게 풀린다! 📌 코드 i.. 2021. 8. 24.
[SWEA/Python] 1221. GNS 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 코드 import sys sys.stdin = open('input.txt') T = int(input()) for _ in range(T): t, N = input().split() numbers = list(input().split()) str_num = ["ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"] str_cnt = [0]*len(str_num) for number in numbers: for .. 2021. 8. 23.
[Algorithm] 패턴 매칭 알고리즘 - KMP, 보이어-무어 고지식한 패턴 검색 알고리즘 (Brute Force) 본문 문자열을 처음부터 끝까지 차례대로 순회하면서 패턴 내의 문자들을 일일이 비교 시간 복잡도 O(MN) -> 최악의 경우 텍스트의 모든 위치 패턴 비교해야하므로 p = 'is' # 찾을 패턴 (target) M = len(p) t = 'This is a book~!' # 전체 텍스트 N = len(t) def BruteForce(p, t): i = 0 # t의 인덱스 j = 0 # p의 인덱스 while j < M and i < N: if t[i] != p[j]: i -= j j = -1 i += 1 j += 1 if j == M: return i - M # 검색성공 else: return -1 # 검색실패 카프-라빈 알고리즘 고지식한 패턴 검색 알.. 2021. 8. 22.
728x90