알고리즘13 1655번 - 가운데를 말해요 출처: 백준 알고리즘 주소: www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 문제 요약: (1) N개의 숫자가 차례대로 입력 (2) 1 ~ N개 들어온 숫자들의 중간값 출력 문제 해결: A. 중간값 설정 B. 중간값보다 작은 경우, MaxHeap에 저장 C. 중간값보다 크거나 같은 경우, MinHeap에 저장 D. MaxHeap과 MinHeap의 크기의 차이를 1이하로 유지 미리 공부할 내용: => heap에 대해 공부하기 위해 아래 블로그 .. 2021. 4. 8. 11286번 - 절댓값 힙 출처: 백준 알고리즘 주소: www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 요약: (1) 절댓값이 작은 힙 클래스 생성 => 힙의 최대 크기(N): 100000, 힙에 저장되는 정수 범위: -231 ~ 231 (2) 0이 아닌 정수를 입력 받으면 힙에 입력 (3) 0을 입력으로 받으면 절댓값이 가장 작은 값 출력하고 그 값을 힙에서 제거 => 만일 절댓값이 가장 작은 값이 여러 개인 경우, 그 중에 제일 작은 값 하나만 출력하고 .. 2021. 4. 6. 1927번 - 최소 힙 출처: 백준 알고리즘 주소: www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 요약: (1) 최소 힙 클래스 생성 => 힙의 최대 크기(N): 100000, 힙에 저장되는 자연수의 범위: 1 ~ 231 - 1 (2) x값이 0이면 힙에서 가장 작은 값을 출력하고, 그 값을 힙에서 제거 (3) x값이 자연수이면 힙에 삽입 문제 해결: A. 최소 힙 클래스 정의 B. 최소 힙 클래스 내의 삽입 함수 생성 C. 최소 힙 클래스 내의 최소 값.. 2021. 4. 5. 11279번 - 최대 힙 출처: 백준 알고리즘 주소: www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 문제 요약: (1) 최대 힙 자료구조 생성 => 힙의 최대 크기(N): 100000, 힙의 저장되는 자연수의 범위: 1 ~ 231 - 1 (2) x값이 0이면 힙에서 가장 큰 값 출력하고 그 값을 힙에서 제거 (3) x값이 자연수이면 힙에 삽입 문제 해결: A. 자료구조 최대 힙을 정의 B. 최대 힙의 삽입 함수 생성 C. 최대 힙의 최대 값 삭제 함수 생성 자료.. 2021. 4. 2. 1300번 - K번째 수 출처: 백준 알고리즘 주소: www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 문제 요약: (1) (N, N)인 배열 A을 (1, N2)인 배열 B에 대입 (1-1) 배열 A[i][j]의 값은 i * j 이다. (2) 배열 B를 오름차순 정렬 (3) 배열 B의 K번째 수를 출력 (단, 배열의 인덱스는 1부터 시작) 문제 해결: 1) 배열 A를 만들어서 배열 B에 대입해서 K번째를 출력하는 방법 => 처음에는 이렇게 진행하면 쉽게 .. 2021. 3. 30. 이전 1 2 3 다음