본문 바로가기

분류 전체보기

(43)
완전탐색, 동적계획법, 탐욕법 1. 완전탐색, BFS, DFS : 모든 선택지 탐색하는 방법. 하나의 문제를 작은 sub 문제로 쪼개서 재귀로 풀 수 있는 경우 多 2. 동적계획법 : 완전 탐색처럼 해결하나, 중복되는 sub 문제를 한번만 계산되도록 memoization을 활용하는 문제 3. 탐욕법 : 한 문제를 작은 문제로 쪼개서 재귀로 푸는 것은 완전탐색, 동적계획법과 동일하나, 각 단계마다 당장 가장 좋은 방법만 선택 ① 여러 부분 문제로 나누기 ② 어떤 우선 순위로 선택할지 결정 (손으로 몇 개 풀면서) ③ 답이 항상 최적해인지, 각 단계에서 최적해가 전체 최적해를 만드는지 생각
CNN Computational Considerations 공부 목적으로 아래 링크 글을 번역해보았다. 발번역이니 아래 링크 참조 바랍니다. http://cs231n.github.io/convolutional-networks/#computational-considerations CS231n Convolutional Neural Networks for Visual Recognition Table of Contents: Convolutional Neural Networks (CNNs / ConvNets) Convolutional Neural Networks are very similar to ordinary Neural Networks from the previous chapter: they are made up of neurons that have learnabl..
백준_BruteForce_부분수열의 합 [Python] from itertools import combinations n, s = map(int, input().split()) arr = list(map(int, input().split())) cnt = 0 for k in range(1, n+1): combs = combinations(arr, k) ## 먼저 이렇게 객체를 만들어 저장하고 for comb in combs: # 나중에 for문을 돌려야함 if sum(comb) == s: cnt += 1 print(cnt)
VS Code에서 Python 사용하기 jupyter notebook에서 프로그램하는 환경에만 익숙했는데, github에서 다운받은 코드를 돌릴때는 ipynb 파일이 아닌 py 파일이므로 Visual Studio Code를 사용하기 시작했다. 가상환경 인터프리터를 사용해서 가상환경에 pip로 다운받은 패키지들도 편하게 사용할 수 있고, 코드 및 폴더 확인이 간편하며, cmd 창을 열어 실행시킬 필요도 없고, 무엇보다 개발자스럽게 생긴 UI 덕분에 마음에 들었다. 그런데 윈도우 cmd에서 가상환경을 활성화시키던 call venv/scripts/activate 위 명령어가 작동하지 않아, 구글링을 해보니, 아래와 같이 했어야 했다. 그런데도 스크립트를 실행할 수 없다, 권한 등등 에러메시지가 나온다면, VSCode 창을 닫고 다시 관리자 권한으로..
백준_BruteForce_분해합 n = input() n = int(n) def getsSum(num): sSum = num while(num >= 1): sSum += (num % 10) num = num // 10 return sSum flag = False for i in range(n): if getsSum(i) == n: print(i) flag = True break if flag == False: print(0)
백준_BruteForce_로또 import numpy as np def dfs(start, depth): if depth == 6: for i in combination: print(i, end=' ') print() return ## 6개 다 안채워진 경우 for i in range(start, n): combination[depth] = lotto[i] dfs(i+1, depth+1) while(1): inp = input() if inp == '0': break case = inp.split() n = int(case[0]) lotto = [int(i) for i in case[1:]] combination = np.zeros(6, dtype='int') dfs(start=0, depth=0) print() python으로 작성..
백준_BruteForce_연구소 잘 모르겠다. 예제 코드 잘 돌아가고, 다른 코드랑 비교해도 다른게 없어보이는데 :(런타임에러가 어디서 나는지 찾아주시면 감사하겠습니다ㅠㅠ import numpy as np import sys import copy ans = 0 n = m = 0 viruslist = [] arr = [] safelist = [] ## DFS로 바이러스 퍼트리고, 안전구역 넓이 구하기 def spread_virus(copyed_arr, queue): dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] visit = list() while queue: node = queue.pop(0) # (1,5) if node not in visit: visit.append(node) copyed_arr[node[0]]..
백준_BruteForce_퇴사 n = int(input()) n_ = n t = [] p = [] while(n_ > 0): splited = input().split() t.append(int(splited[0])) p.append(int(splited[1])) n_ -= 1 def fun(psum, i): if i > n: return 0 if i == n : return psum return max(fun(psum+p[i], i+t[i]), fun(psum, i+1)) print(fun(0, 0))