본문 바로가기

알고리즘21

중복순열 구하기(DFS) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/Wa5t 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com #강의 풀이 def DFS(L): global res, cnt if L == m: for i in res: print(i, end = ' ') print() cnt += 1 else: for i in range(1, n+1): res[L] = i DFS(L+1) if __name__ == "__main__": n, m = map(int, input().split()) res = [0] * m cnt = 0 DFS(0) print(.. 2022. 4. 2.
바둑이 승차 (Cut Edge Tech) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/8dBY 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 내 풀이 (정답아님) #내 풀이 def DFS(L, sum): global maxx if L == n-1: if sum maxx: maxx = sum print(maxx) else: DFS(L+1, sum+a[L]) DFS(L+1, sum) if __name__ == "__main__": c, n = map(int, input().split()) a = [] maxx = 0 for i in range(n).. 2022. 4. 1.
합이 같은 부분집합 (DFS) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/8dBY 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com #강의 풀이 def DFS(L, sum): if sum > total//2: return if L == n: if sum==(total-sum): print("YES") sys.exit(0) else: DFS(L+1, sum+a[L]) DFS(L+1, sum) if __name__ == "__main__": n = int(input()) a = list(map(int, input().split())) total = sum(a) D.. 2022. 4. 1.
부분집합 구하기 (DFS) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/iJeD 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 풀이 방법을 잘 모르겠어서 강의를 봤다. #강의 풀이 def DFS(v): if v == n+1: for i in range(1, n+1): if ch[i] == 1: print(i, end = ' ') print() else: ch[v] = 1 DFS(v+1) ch[v] = 0 DFS(v+1) if __name__ == "__main__": n = int(input()) ch = [0] * (n+1) DFS(1) 여기서 DFS[.. 2022. 4. 1.
응급실(큐) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/3G7S 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 내 풀이 (정답 아님) from collections import deque #내 풀이 n, m = map(int, input().split()) a = list(map(int, input().split())) a = deque(a) target = a[m] cnt = 0 while True: tmp = a.popleft() if tmp[1] >= max(a[1]): cnt += 1 else: a.append(tmp) if tar.. 2022. 3. 30.
후위 표기식 만들기(스택) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/k3z6 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com #강의 풀이 a = input() stack = [] res = '' for x in a: if x.isdecimal(): res += x else: if x == '(': stack.append(x) elif x == '*' or x == '/': while stack and (stack[-1] == '*' or stack[-1] == '/'): res += stack.pop() stack.append(x) elif x == '.. 2022. 3. 30.