생산적인/PS 3

백준 6549번: 히스토그램에서 가장 큰 직사각형 (플래티넘 V)

https://www.acmicpc.net/problem/6549 6549번: 히스토그램에서 가장 큰 직사각형 입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤ www.acmicpc.net 이런 식으로 히스토그램이 주어졌을 때, 만들 수 있는 가장 큰 직사각형의 넓이를 구하면 된다고 한다. 사실 이 문제는 동치인 문제가 굉장히 많아서, 하나만 풀면 플래티넘 V 문제를 무려 6개 가량 해결해버릴 수 있는 솔브닥 점수 버핑 문제이다. 이 문제를 풀고 같은 유형의 문제로 복습해보기 좋다. 요즘 내 세그먼트 트리 폼이 올랐으므로, 한..

생산적인/PS 2022.10.22

백준 3006번: 터보소트 (플래티넘 IV)

https://www.acmicpc.net/problem/3006 3006번: 터보소트 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이며, 배열의 크기이다. 둘째 줄부터 N개의 줄에는 1보다 크거나 같고, N보다 작거나 같은 수가 중복 없이 주어진다 www.acmicpc.net 터보소트라는 한번도 들어본 적 없는 정렬 알고리즘이 등장한다. 정렬하는 방식을 읽어보면 가장 원시적인 방식의 버블소트와 크게 다를 것이 없어보인다. 버블소트가 그냥 계속 앞으로 땡겨오는 것이라면 터보소트는 앞-뒤로 번갈아가며 보내주는 정도의 차이이다. 나무위키 피셜로는 실제로 "칵테일 소트"라는 버블소트의 하위 정렬 알고리즘이 있다고 하는데, 방식이 터보소트랑 완전 똑같다. 칵테일 섞는..

생산적인/PS 2022.09.18