Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- AddRange
- list 사용법
- 네트워크 용어
- InsertRange
- 서브넷
- c# list
- Tostring 사용법
- List 제거
- C# Contains
- 호스트
- Parse 사용법
- 서브넷 마스크
- TCP/IP
- list
- C# Find
- Visual Studio
- 알고리즘
- 네트워크
- 백준
- c#
- C++
- BFS
- IP주소
- List 추가
- DP
- OSI 3계층
- 호스트 주소
- 기본 게이트웨이
- List 찾기
- List 정렬
Archives
- Today
- Total
CodeLabs
[백준 / C#] 1927 : 최소 힙 본문
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace _11279
{
class MaxHeap
{
private List<int> A = new List<int>();
public void Add(int value)
{
// Add the end
A.Add(value);
// bubble up(부모노드 찾기)
int i = A.Count - 1;
while (i > 0)
{
int parent = (i - 1) / 2;
if (A[parent] > A[i]) // Max Heap일때는 부등호를 반대
{
Swap(parent, i);
i = parent;
}
else break;
}
}
public int RemoveOne()
{
if (A.Count.Equals(0))
return 0;
//Min Heap
int root = A[0];
A[0] = A[A.Count - 1];
A.RemoveAt(A.Count - 1);
// bubble down
int i = 0;
int last = A.Count - 1;
while (i < last)
{
int child = i * 2 + 1;
if (child < last &&
A[child] > A[child + 1]) //Max Heap일때는 반대
child = child + 1;
if (child > last ||
A[i] <= A[child]) //Max Heap일때는 반대
break;
Swap(i, child);
i = child;
}
return root;
}
private void Swap(int i, int j)
{
int t = A[i];
A[i] = A[j];
A[j] = t;
}
}
class Program
{
static int n;
static StringBuilder sb = new StringBuilder();
static MaxHeap item = new MaxHeap();
static void Solution(int n)
{
if (n.Equals(0))
sb.AppendLine(item.RemoveOne().ToString());
else item.Add(n);
}
static void Input()
{
StreamReader sr = new StreamReader(Console.OpenStandardInput());
n = int.Parse(sr.ReadLine());
for (int i = 0; i < n; i++)
Solution(int.Parse(sr.ReadLine()));
Console.WriteLine(sb);
}
static void Solve()
{
Input();
}
static void Main(string[] args)
{
Solve();
}
}
}
'백준 > 1000 ~' 카테고리의 다른 글
[백준 / C#] 2178 : 미로탐색 (0) | 2023.07.28 |
---|---|
[백준 / C#] 1931 : 회의실 배정 (0) | 2023.07.26 |
[백준 / C++] 1764 : 듣보잡 (0) | 2023.07.21 |
[백준 / C#] 1697 : 숨바꼭질 (0) | 2023.07.18 |
[백준 / C++] 1620 : 나는야 포켓몬 마스터 이다솜 (0) | 2023.07.15 |