그리디 알고리즘 41

백준 20365번 블로그2 C++

https://www.acmicpc.net/problem/20365 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net B를 먼저 쭉 칠해놓은 경우와 R을 먼저 쭉 칠해놓은 경우를 비교해서 작은 값을 구한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using i..

알고리즘 2023.05.29

백준 2012번 등수 매기기 C++

https://www.acmicpc.net/problem/2012 2012번: 등수 매기기 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다. www.acmicpc.net 오름차순 정렬 후 1등부터 차이나는대로 더한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int n; int..

카테고리 없음 2023.05.24

백준 12933번 오리 C++

https://www.acmicpc.net/problem/12933 12933번: 오리 첫째 줄에 영선이가 녹음한 소리가 주어진다. 소리의 길이는 5보다 크거나 같고, 2500보다 작거나 같은 자연수이고, 'q','u','a','c','k'로만 이루어져 있다. www.acmicpc.net 방문 체크를 하면서 계속 반복하면서 올바른 울음소리를 내는 사이클을 얼마나 반복하는지 세면 된다. 우는것을 시작도 안하는 경우, 울다 마는 경우 예외처리를 해줘야한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ..

알고리즘 2023.05.12

백준 17828번 문자열 화폐 C++

https://www.acmicpc.net/problem/17828 17828번: 문자열 화폐 첫 번째 줄에 문자열의 길이 N(1 ≤ N ≤ 5,000,000)과, 문자열의 가치를 나타내는 정수 X(1 ≤ X ≤ 500,000,000)가 공백으로 구분되어 주어진다. www.acmicpc.net 그리디하게 a의 최대 개수를 구한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int main() { ios_base:..

알고리즘 2023.05.07

백준 23843번 콘센트 C++

https://www.acmicpc.net/problem/23843 23843번: 콘센트 광재는 전자기기 대여사업을 시작했다. 퇴근하기 전에 다음날 손님들에게 빌려줄 N개의 전자기기를 충전하려 한다. 사용 가능한 콘센트는 M개가 있고, 성능은 모두 동일하다. 전자기기들은 한 www.acmicpc.net 1. 전자기기들을 내림차순으로 정렬 2. 작은 수가 제일 먼저 뽑히게 하는 우선순위 큐 생성 3. 앞에서 m개만큼 전자기기를 우선순위 큐에 삽입 4. m ~ n-1까지 전자기기들의 시간을 우선순위 큐의 top을 뽑은 값에 더하고 다시 우선순위 큐에 삽입 ( 일이 가장 빨리 끝난 플러그에 바로 일 할당) 5. 우선순위 큐를 pop하면서 가장 마지막에 남은 원소가 답이다. #include #include #i..

알고리즘 2023.04.29

백준 1448번 삼각형 만들기 C++

https://www.acmicpc.net/problem/1448 1448번: 삼각형 만들기 첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다 www.acmicpc.net 정렬후 제일 큰 3개의 수를 순차적으로 비교하면서 3개중 작은 2개의 합이 나머지 하나의 값보다 크면 삼각형을 만들 수 있다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc..

알고리즘 2023.04.26

백준 1461번 도서관 C++

https://www.acmicpc.net/problem/1461 1461번: 도서관 세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책 www.acmicpc.net 양수, 음수로 나눠서 인접한 부분끼리 묶어서 가고 마지막에 가는 곳은 다시 돌아와도 되지 않기 때문에 돌아오는 비용을 빼준다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using names..

알고리즘 2023.03.26

백준 16112번 5차 전직 C++

https://www.acmicpc.net/problem/16112 16112번: 5차 전직 메이플스토리 뉴비 키파가 드디어 레벨 200을 달성하고 5차 전직이라는 시스템을 이용해 캐릭터를 더욱 강력하게 만들려고 합니다. 5차 전직을 하려면 먼저 퀘스트를 통해 아케인스톤이라는 아 www.acmicpc.net 오름차순 정렬을 하면 경험치가 높은 퀘스트를 아케인스톤들에 더 나눠서 받을 수 있다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 ..

알고리즘 2023.03.16

백준 1464번 뒤집기 3 C++

https://www.acmicpc.net/problem/1464 1464번: 뒤집기 3 세준이는 어떤 문자열 S를 뒤집으려고 한다. 문자열을 뒤집는 방법은 문자열의 길이를 N이라고 하자. i만큼을 뒤집는다는 소리는 그 문자열의 처음부터 정확하게 i개의 문자를 역순으로 뒤집는 www.acmicpc.net 앞에서부터 순서대로 탐색하면서 사전순으로 앞선 문자를 뒤로 보내고 마지막에 뒤집으면 된다. 뒤로 보내는 방법은 s[0] ~ s[n-1] 까지 뒤집은 뒤 s[0]~s[n]까지 다시 뒤집으면 되는데, 이 결과는 s[n] + s[0] ~ s[n-1]과 같다. s[n-1] = s[n] 이라면 s[0] ~ s[n-1] + s[n] 마지막에 뒤..

알고리즘 2023.02.19