본문 바로가기

공부/알고리즘 문제풀이 기록46

[백준 11286] 절댓값 힙 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 알고리즘 : 자료구조, 우선순위큐 난이도 : 실버Ⅰ 1. 문제요약 '절댓값 힙'을 배열에서 절댓값이 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 연산 pop을 지원하는 자료구조라고 하자. 다만 절댓값이 가장 작은 값이 여러개인 경우에는 가장 작은 수를 출력후 그 값을 배열에서 제거하고, 배열이 비었다면 0을 출력하기로 한다. 첫째 줄에 연산의 개수 N(100,000이하의 자연수)이 주어지고, 다음 N개의 줄에 연산에 대한 정보를 나타내.. 2024. 4. 5.
[백준 1563] 개근상 1563번: 개근상 백준중학교에서는 학기가 끝날 무렵에 출결사항을 보고 개근상을 줄 것인지 말 것인지 결정한다. 이 학교는 이상해서 학생들이 학교를 너무 자주 빠지기 때문에, 개근상을 주는 조건이 조금 독 www.acmicpc.net 알고리즘 : DP 난이도 : 골드Ⅳ 1. 문제요약 개근상을 받으려면 지각을 두번이상 하면 안되고, 결석을 세번 연속으로 해서도 안된다. 한 학기가 N일(1000이하의 자연수)로 주어질 때, 개근상을 받을 수 있는 출결유형의 개수를 출력한다. 예를 들어 한학기가 2일이고 출석을 O, 지각을 L, 결석을 A라고 표시할 때, 개근상을 받을 수 있는 출결유형은 모두 8개(OO, OL, OA, LO, LA, AO, AL, AA) 이므로 8을 출력하면 된다. 다만 숫자가 너무 커지는 .. 2024. 4. 2.
[백준 1737] Pibonacci 1737번: Pibonacci 첫째 줄에 P[n]을 출력한다. 값이 매우 커질 수 있으므로 1,000,000,000,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 알고리즘 : DP 난이도 : 골드Ⅳ 1. 문제요약 Fibonacci 수열을 변형한 Pibonacci 수열은 다음과 같다. P[n] = 1 (0 ≤ n ≤ π) P[n] = P[n-1] + P[n-π] (그 외) 1000이하의 자연수 n이 주어질 때, P[n]을 출력하는 프로그램을 작성한다. 다만 값이 너무 커지는 것을 방지하기 위해 1000,000,000,000,000,000로 나눈 나머지를 출력하도록 한다. 2. 아이디어 예를들어 P[10] = P[9] + P[10 - π]이고, P[10 - π] = P[9 -.. 2024. 3. 30.
[백준 1341] 사이좋은 형제 1341번: 사이좋은 형제 첫째 줄에 먹는 패턴을 출력한다. 패턴은 영식은 *로, 민식은 -로 출력한다. 만약, 패턴의 길이가 60 이하인 것이 없으면 -1을 출력한다. 가능한 패턴이 여러 가지이면 짧은 것을 출력한다. www.acmicpc.net 알고리즘 : 수학, 구현 난이도 : 골드Ⅲ 1. 문제요약 영식이와 민식이가 순서를 정하여 현재 케이크의 절반씩 먹는데, 이를 무한히 반복하면 케이크를 다 먹게 된다. 케이크를 다 먹은 후 영식이가 먹게 된 케이크의 비율을 전체의 $\frac{a}{b}$라고 하자. 입력으로 $2^{63}-1$이하의 서로소인 a,b가 주어질때, 영식이와 민식이가 케이크를 먹은 패턴을 출력해야 한다. 영식이가 먹은 경우를 '*', 민식이가 먹은 경우를 '-'로 나타낸다. 다만 패턴.. 2024. 3. 19.
[백준 1334] 다음 팰린드롬 수 1334번: 다음 팰린드롬 수 팰린드롬 수는 앞으로 읽어도, 뒤로 읽어도 같은 숫자이다. 101, 4, 6666와 같은 숫자는 팰린드롬 수이고, 10, 564, 15452와 같은 숫자는 아니다. 어떤 수 N이 주어질 때, N보다 큰 팰린드롬 수 중에서 가 www.acmicpc.net 알고리즘 : 구현, 문자열 난이도 : 골드Ⅴ 1. 문제요약 팰린드롬 수는 앞으로 읽어도, 뒤로 읽어도 같은 숫자이다. 즉, 12321과 같은 좌우대칭수를 말한다. 어떤 수 N이 주어질 때, N보다 큰 팰린드롬 수 중에서 가장 작은 수를 출력한다. 2. 아이디어 일단 주어진 숫자를 큰자리수에 맞춰 좌우대칭수로 변환시킨다. 예를들어 1234567는 1234321로 변환한다. 이렇게 변환된 숫자가 원래숫자보다 크다면 그대로 정답이.. 2024. 3. 16.