일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BFS
- 이분 탐색
- 정수론
- 슬라이딩 윈도우
- 13164
- 트리
- 정렬
- 해시 테이블
- 세그먼트 트리
- 그래프
- 에라토스테네스의 체
- 싸피
- 플로이드-워셜
- 누적 합
- 문자열
- 맵
- Python
- 수학
- 모던 JavaScript 튜토리얼
- 브루트포스
- DFS
- SSAFY
- boj
- 그리디
- JavaScript
- 구현
- 2357
- DP
- 투 포인터
- 애드 혹
- Today
- Total
목록전체 글 (271)
흙금이네 블로그
오늘 5월 6일 백준 온라인 저지에서 개최된 2023 부산대학교 CodeRace Open Contest에 참가했습니다. 7문제 중 5문제를 풀었고, 대회 참가 인원 255명 중 12위로 마무리했습니다. 평소에 solved.ac 뱃지와 배경 모으는 걸 좋아해서 BOJ에서 대회가 개최되면 한 문제씩만 풀곤 했는데 지난 4월 30일에 열린 2023 구데기컵에서 운 좋게 21위를 한 이후로 대회에 재미를 느껴 이번엔 열심히 풀어 보았습니다. DP 문제가 꽤 나왔는데 여전히 DP에 약하다는 걸 느꼈고, 특히 B, C 문제에서 헤맬 땐 좌절하기도 했습니다. 그래도 끝까지 푼 덕분에 중후반에 순위가 크게 오르면서 잘 마무리할 수 있었습니다. 앞으로도 종종 대회가 개최되면 참가해봐야겠습니다. 이번 대회에서 5문제를 풀..
아이디어 플로이드-워셜 알고리즘으로 모든 파티장 간의 이동 시간을 구한다. 풀이 #1 (Python) import sys input = sys.stdin.readline def solution(): N, M = map(int, input().split()) graph = [] for _ in range(N): graph.append(list(map(int, input().split()))) for k in range(N): for i in range(N): for j in range(N): if graph[i][k]+graph[k][j] < graph[i][j]: graph[i][j] = graph[i][k]+graph[k][j] for _ in range(M): A, B, C = map(int, inp..
아이디어 각 노드의 자식 수를 구하되, 해당 노드가 왼쪽 서브 트리의 노드라면 1을 추가로 더한다. 풀이 #1 (Python) 중위 순회의 마지막 노드는 트리에서 가장 오른쪽에 있는 노드이다. 따라서 유사 중위 순회 방법에 따라 왼쪽 서브 트리에 속하는 노드는 모두 부모 노드로 이동하게 된다. DFS로 왼쪽 서브 트리에 속하는 노드는 자식 수+1, 나머지 노드는 자식 수를 결과값에 더해 나간다. import sys sys.setrecursionlimit(100002) input = sys.stdin.readline def solution(): def traversal(u, is_right): nonlocal res res += child[u]+1-is_right if tree[u][0] > 0: trav..