bfs dfs 의 문제에 으쌰으쌰해 한방에 맞춘 문제 import collections def bfs(graph, start_node): will_visit=collections.deque(graph[start_node]) visit=[start_node] while will_visit: travel = will_visit.popleft() if travel not in visit: if len(graph[travel])>0: for k in graph[travel]: will_visit.append(k) visit.append(travel) return set(visit) computer = int(input()) edges = int(input()) networks={} for i in range(c..
런타임 에러나서 한참 고생했다. 진짜 한 10번 고친듯/ 처음에는 인강대로 하는 내 자신을 원망했지만, 후에는 백준에 대한 유의사항도 공부하는 유익한 문제였다. 딕셔너리 키 없는 에러가 안나오기 위해 차라리 빈 리스트를 만들어주는 것도 하나의 방법 #제발 list.pop(0)를 쓰지 마세요! # 파이썬의 최대 재귀 깊이는 1,000 근처입니다. 그래서 재귀로 DFS를 구현하면 방법에 따라 런타임 에러가 날 수 있습니다. #sys.setrecursionlimit으로 이 깊이를 조절할 수 있습니다. import collections def bfs(graph,start_node): visited=[] will_visit=[] # 두개의 큐로 된다. if start_node in graph: will_visit..
파이썬의 모든 스택과 큐는 이것을 사용해야한다. import collections 1. deque 란? 양방향에서 데이터를 처리할 수 있는 queue형 자료구조이다. 2. deque 메소드들 import collections a=[2,3,4] a = collections.deque(a) a.appendleft(1) # [1,2,3,4] a.popleft() # [2,3,4] a.append(5) # [2,3,4,5] a.pop() # [2,3,4] deq = collections.deque(['a', 'b', 'c']) deq.extendleft('de') print(deq) # collections.deque deq = collections.de..
대부분의 언어 입출력이 느리면 그것때문에 시간초과가 날 수 있습니다. 이 문제(링크)를 풀어 봅시다. exit code가 0이 아니면 비정상적인 종료를 의미합니다. C/C++ main의 return 1, 여러 언어의 exit(1) 등으로 0이 아닌 exit code를 내면 런타임 에러입니다. 데이터의 끝에 '\n'가 들어오는 것이 원칙이지만, 꼭 지켜지는 사항은 아니며 오래된 데이터일 수록 지켜지지 않을 가능성이 높습니다. '\n'으로 입력의 끝을 검사하거나, 한 줄을 입력받고 마지막 글자를 지울 경우 문제가 생길 수 있습니다. 하지만 이 경우 오타/오역/요청 게시판에 제보하면 수정될 것입니다. 비슷하게, 오래된 문제에는 데이터 각 줄의 끝에 공백이 하나씩 들어있을 수도 있습니다. 이것도 오타/오역/요청..

너비 우선 탐색( Breadth - First Search) 홍익대 프로그래밍 경진 대회문제를 푸는데, 재귀로 풀었더니 자꾸 recursion 에러 나서 아예 스택, 큐 구현의 중요성을 느껴 다시 공부한다. 1. BFS 와 DFS란? 대표적인 그래프 탐색 알고리즘 너비 우선 탐색: 정점들과 같은 레벨에 있는 노드들( 형제 노드들)을 먼저 탐색하는 방식 깊이 우선 탐색: 정점들의 자식을 먼저 탐색하는 알고리즘 BFS/DFS 방식을 이해하기 위한 예제 BFS 방식 = A - B - C - D - G - H - I - E - F - J 한 단계씩 내려가면서, 해당 노드와 같은 레벨에 있는 노드들( 형제 노드들 )을 먼저 순회함 DFS 방식 = A - B - D - E - F - C - G - H - I - J..
T = int(input()) for _ in range(T): k = int(input()) n = int(input()) if n ==1: print(1) else: floor=list(range(1,n+1)) ans=0 for i in range(k): # 층수 floor_new= [1] for h in range(2,n+1): tmp=floor[: h] # print("tmp",tmp) a=sum(tmp) floor_new.append(a) floor= floor_new # print(floor) print(floor_new[-1])

6-4 풀이 : 소풍 완전 탐색 이렇게 가능한 조합의 수를 계산하는 문제를 푸는 가장 간단한 방법은 완전 탐색을 이용해 조합을 모두 만들어 보는 것 입닏. 재귀 호출을 이용해 코드를 작성해 봅시다. 재귀 호출을 이용해 문제를 해결하려면, 우선 각 답을 만드는 과정을 여러 개의 조각으로 나눠야합니다.여기서는 전체 문제를 n/2 개의 조각으로 나눠서 한 조각마다 두 학생을 짝지어 준다. 이때 문제의 형태를 ' 아직 짝을 찾지 못한 학생들의 명단이 주어질때, 친구끼리 둘 씩 짝짓는 경우릐 수를 계산하라. ' 가 됩니다. 명단에서 서로 친구인 두 학생을 찾아, 이들을 짝지어 주고나면 남은 학생들을 짝지어주는 문제도 원래 문제와 같은 형태가 된다. 각 단계에서 가장 번호가 빠른 학생의 짝을 찾아 반복을 제거함. ..
- Total
- Today
- Yesterday
- 참고 링크
- pycharm
- 자바 인강이 듣고 싶다면 => https://bit.ly/3ilMbIO
- 패스트 캠퍼스
- 쉘스크립트
- 자스계의백과사전
- hot
- 주피터노트북 설치
- 디비
- 자바 인강
- 환경세팅
- 크론탭
- AWS
- CKA
- 혁펜하임
- 세션불일치
- 딥러닝책
- 마크다운
- EC2
- 패스트캠퍼스
- 딥러닝
- 유용한웹사이트
- 파이참
- https://cupjoo.tistory.com/96
- 스프링 프레임워크 핵심 기술
- 자바인강
- 자바
- 언제나 함께해요
- linter
- 쿠버네티스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |