본문 바로가기

알고리즘3

Segment Tree(세그먼트 트리) (Python3) 세그먼트 트리란?세그먼트 트리는 구간의 정보를 알고 싶을 때 사용하는 트리입니다.각 노드는 자식 노드의 정보를 연산한 값을 저장하고 있습니다. 이 특징으로 구간의 사칙연산, 최대·최솟값 등을 구할 때 자주 사용한다고 합니다. 개발자는 배열 혹은 리스트에서 부분의 합 정보를 알고 싶습니다. 그래서 선형 탐색으로 접근을 하고, 구간이 일치한다면 그 정보들을 하나하나 가져옵니다. 이것은 구현이 쉬우나, O(N)의 비용이 발생합니다. 세그먼트 트리의 노드는 부분의 정보를 저장하고 있습니다.말단 노드(leaf node)에 접근하면, 배열의 원소 값과 일치합니다.하지만 말단 노드의 부모 노드 부터는, 자식 노드의 정보를 합한(혹은 빼거나 곱하는 등) 값을 저장하고 있습니다.그래서 필요한 구간의 노드를 찾아내면 원하.. 2025. 3. 29.
리그오브레전드 팀 빌딩 웹 v1.0 *완성이라고 하기엔 흠이 많은 프로그램입니다.*틈나면 업데이트 하겠습니다. 새창에서 사용하기 업데이트 내역2024-09-04 v0.0업데이트 : 파이썬에서 로직 구현2025-03-26 v1.0업데이트 : 웹 환경에서 이용 가능이용 화면* 이름, 티어, 주포지션은 반드시 기입해야 할 내용입니다.* 서브 포지션은 입력하지 않아도 됩니다.* 드롭다운(선택창) 옆에 ▼▲ 버튼은 드롭다운에서 찾기 귀찮아서 만든 버튼입니다.* 모든 정보를 입력하면 아래에 "팀 빌딩하기" 버튼을 눌러서 팀을 생성합니다. 티어를 선택합니다. 플레이어 카드를 드래그 앤 드랍을 해서 자유롭게 팀 이동을 할 수 있습니다.문제 정의롤 사설 경기에서 플레이어들의 정보를 바탕으로 균형 잡힌 팀을 자동으로 구성해주는 프로그램입니다. 로직 설명플레.. 2024. 9. 4.
[22동계모각코] 7회 계획 및 평가 시작 시간 : 23-01-30 오후 6시 오늘의 목표 다익스트라(Dijkstra) 알고리즘 공부 이렇게 공부한 알고리즘을 정리해보는 것은 처음이다. 그래서 글이 너무 복잡하고, 정리가 안 되어 있다. 오늘은 다익스트라 알고리즘을 공부했다. 다익스트라 알고리즘은 정보 탐색 중에서 최단 경로를 구하기 위한 알고리즘이다. 정보 탐색이란, 탐색에 필요한 정보들을 탐색 전에 미리 알고 있는 경우이다. a에서 b까지의 이동경로를 직접 가보지 않고 미리 알수 있는 경우가 정보탐색인 것이다. 또 다른 특징이 있다면, 비용(cost)의 정보가 모두 음이 아닌 정수여야 한다. 비용 정보가 음수도 포함이 된다면 '플로이드-워셜' 알고리즘으로 해결해야 한댔다. *논외이긴 하지만 정보가 사전에 준비되지 않은 경우에는 다른 탐색.. 2023. 1. 30.