티스토리 뷰

컴퓨터공학/Problem Solving

백준 2243

_Bibidi 2021. 1. 23. 11:08
 

2243번: 사탕상자

첫째 줄에 수정이가 사탕상자에 손을 댄 횟수 n(1≤n≤100,000)이 주어진다. 다음 n개의 줄에는 두 정수 A, B, 혹은 세 정수 A, B, C가 주어진다. A가 1인 경우는 사탕상자에서 사탕을 꺼내는 경우이다.

www.acmicpc.net

 

  세그먼트 트리 응용 문제. 사탕맛이 a인 사탕이 몇 개인지 tree[base + a]에 업데이트하고 k 번째 사탕을 찾아서 내주면 된다. k 번째 사탕은 사탕 맛의 크기가 작은 쪽에서 k 번째이다. 루트에서 왼쪽으로 내려가서 찾을지 오른쪽에서 내려가서 찾을지 정해야 하는데, 왼쪽에 사탕이 k 개 이상 있을 땐 왼쪽으로 가고 그렇지 않을 땐 오른쪽으로 가서 k - 왼쪽 사탕의 개수 번째 사탕을 찾으면 된다.

 

 

 - Source code link

github.com/Bibidi/Algorithms/blob/master/boj/boj%202243.cpp

'컴퓨터공학 > Problem Solving' 카테고리의 다른 글

백준 1280  (0) 2021.01.23
백준 3006  (0) 2021.01.23
백준 10775  (0) 2021.01.21
백준 14868  (0) 2021.01.20
백준 16562  (0) 2021.01.20
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함