모든 트리 순회의 기준은 부모 노드로 한다. 탐색 방법 전위 순회(preorder traversal) : 부모노드 -> 왼쪽 자식 노드 -> 오른쪽 자식 노드 순서로 루트 노드 부터 시작한다. 중위 순회(inorder traversal) : 왼쪽 자식 노드 -> 부모노드 -> 오른쪽 자식 노드 순서로 맨 왼쪽 노드를 방문하고 부모노드를 방문한다. 후위 순회(postorder traversal) : 왼쪽 자식 노드 -> 오른쪽 자식 노드 -> 부모노드 순서로 마지막 래벨의 노드들 부터 방문한다. 예시 위 사진에서 전위, 후위, 중위 탐색방법 전위 순회한 결과 : A -> B -> D -> C -> E -> F -> G 중위 순회한 결과 : D -> B -> A -> E -> C -> F -> G 후위 순회..
링크 : www.acmicpc.net/problem/11725 문제요약 입력 : N, 각각 연결된 노드들 출력 : N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력 코드작성개요 필요한 변수 N - 받을 노드의 줄 a, b - 연결된 노드 now - 지금 탐색중인 노드 필요한 배열(vector) adj - vector 형 배열로 인접리스트(트리)구현 visited - 방문체크 parents - i 번째 노드의 부모 깊이 우선 탐색(DFS) 1. 루트가 1이므로 처음 now 값 1로 전달 2. 1부터 자신의 자식 노드를 탐색 3. 다음에 탐색할 노드의 부모를 now로 설정하고 parents[다음 탐색할 노드] 에 now 값을 넣는다 코드
문제링크 : www.acmicpc.net/problem/11653 문제요약 입력 : 소인수분해 할 수 출력 : N을 소인수분해한 결과를 한줄에 하나씩 소인수분해과정 - 에라토스테네스의 체를 이용 →시간초과 - i 를 2~N 까지 증가시키며 나누기 -> ㅇㅇ 이때 N 이 i 로 여러번 나누어지는 경우도 있으므로 if 문이 아닌 while 문을 쓴다. ex) 100 → 2, 2, 5, 5 코드작성개요 필요한 변수 N - 소인수분해를 할 수 출력 N을 나누었을때 나머지가 0이 되는 i 값 코드 N = int(input()) i = 2 while N != 1: if N == 0: break while N % i == 0: print(i) N /= i i += 1 cf) 채점이 굉장히 오래걸린다
webqr.com/ Web QR webqr.com
- Total
- Today
- Yesterday
- 넓이
- 직업군 추천
- 피보나치
- 스택
- 더하기
- boj
- 4
- web
- 파이썬
- math
- HackCTF
- forensic
- 21758
- c++
- 다익스트라
- 1
- 백준
- programmers
- 프로그레머스
- 쇠막대기
- FIBO
- 나머지
- 2
- openCV
- 카카오 2021 블라인드 테스트
- 7567
- python
- 괄호
- 👼
- 꿀따기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |