건전한 건전지
반응형
[BOJ/C++] 팰린드롬 만들기 - 1254번 / CPP풀이
Algorithm 2023. 4. 7. 20:04

https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 문자열 S를 받아 해당 문자열에서 N개의 문자를 추가하여 팰린드롬을 만드는 문제이다. 단, S의 길이는 최소로 해야한다. 우선 임의의 문자열에서 팰린드롬을 만들 수 있는 방법은 무엇이 있을까? abab : a만 추가하면 된다. abbb : a만 추가하면 된다. aabb : a를 2개 추가해야한다. abba : 그 자체로 팰린드롬 팰린드롬을 만드는 규칙이 있을까? 길이를 반으로 나누어 문자를 추가하고 합..

[백준/CPP] 근손실 - 18429번 / CPP 풀이
Algorithm 2023. 4. 1. 19:29

https://www.acmicpc.net/problem/18429 18429번: 근손실 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 www.acmicpc.net 백준 백트래킹의 대표적인 문제인 "N과 M"이랑 비슷한 문제이다. 문제를 요약하자면 N일 동안 매일 다른 키트를 사용하여 운동하는데 하루에 근육이 K만큼 빠진다고 한다. 매일 매일 다른 키트를 사용하여 N일 동안 3대 500을 유지하는 문제이다. 단 하루라도 500 이하로 떨어지면 안되므로 Ni - K > 500 인 순열을 찾는 문제이다. For 문을 0 ~ N까지 돌리면서 만약 그 날..

article thumbnail
[BOJ/C++] 욱제는 도박쟁이야!! - 14655번 / CPP풀이
Algorithm 2023. 3. 2. 02:34

https://www.acmicpc.net/problem/14655 14655번: 욱제는 도박쟁이야!! 첫째 줄에 동전의 수 N이 주어진다. (1 ≤ N ≤ 10,000) 둘째 줄에 욱제의 첫 번째 라운드의 N개 동전의 배열이 주어진다. 셋째 줄에 욱제의 두 번째 라운드의 N개 동전의 배열이 주어진다. 동전에 적 www.acmicpc.net 그리디 알고리즘 문제이다. 문제에서 이해가 잘 안되는 문장이 있는데 항상 연속한 3개의 동전만 뒤집는다고 해놓고 저게 뭔말인지........ 간단하게 말하면 3개의 인덱스를 동시에 뒤집는 것이 아니라 배열 맨 처음 or 마지막 2개씩 혹은 1개씩 뒤집는 행위가 가능하다는 것이다. 풀이는 두가지가 있는데 먼저 첫번째 풀이 첫 배열의 모든 원소는 +로 만들고, 두 번째 ..

article thumbnail
[백준/C++] 창고 이전 - 2134번 / CPP풀이
Algorithm 2023. 2. 27. 17:53

https://www.acmicpc.net/problem/2134 2134번: 창고 이전 첫째 줄에 세 정수 n, m, k가 주어진다. 다음 줄에는 n개의 정수로 기존 창고의 각 층에 보관되어 있는 물품의 개수가 1층부터 n층의 순서로 한 줄에 하나씩 주어진다. 다음 m개의 줄에는 창고의 각 www.acmicpc.net - 생각한 내용 - 물건은 1회 이동당 1개씩만 챙겨서 새로운 창고로 이동함. 높은 층에 있는 물건을 옮길수록 Total Cost가 늘어남 -> 최대한 많은 물건을 옮기는 것이 목적 -> 새로운 창고의 1층부터 채우고, 기존 창고의 1층 물건부터 옮기면 최소 Cost로 작업 가능 인부의 수는 생각할 필요가 없음. -> 인부의 수는 결과에 영향을 주지 않음 (빨리 끝내거나 효율적으로 하는게..

article thumbnail
[백준/C++] 발머의 피크 이론 - 27496번
Algorithm 2023. 2. 22. 14:30

https://www.acmicpc.net/problem/27496 27496번: 발머의 피크 이론 각 시간에 따른 혈중 알코올 농도는 {0.045, 0.089, 0.133, 0.131, 0.127}이다. 따라서 지금으로부터 2시간 후와 3시간 후, 총 두 시간 동안 혈중 알코올 농도를 유지할 수 있다. www.acmicpc.net 슬라이딩 윈도우 + 누적합 문제이다. 소수점이 나와서 더 까다로웠던 문제 시간 N과 알코올의 지속시간 L을 입력받고 매 시간마다 섭취하는 알코올의 양인 Ai를 입력받아 0.129 l; vector vc; int cnt = 0; int nowA = 0; for (int i = 0; i > c; vc.push_back(c); nowA +..

article thumbnail
[백준/C++] 알파벳 블록 - 27497 / CPP 풀이
Algorithm 2023. 2. 22. 14:10

https://www.acmicpc.net/problem/27497 27497번: 알파벳 블록 첫째 줄에 버튼을 누른 횟수 $N$이 주어진다. $(1 \leq N \leq 1\,000\,000)$ 둘째 줄부터 $N$개의 줄에는 버튼을 누른 순서대로 누른 버튼에 대한 정보를 주며 아래와 같은 형식으로 주어진다. 1 c : 문자열 www.acmicpc.net 구현해야 하는 기능은 3개 1. 문자열 맨 뒤에 문자 추가 2. 문자열 맨 앞에 문자 추가 3. 가장 나중에 추가된 문자 제거. 단, 문자열이 비었을 때는 작동 없이 넘어감 1, 2는 deque를 이용해서 구현하면 되고 3번은 스택을 사용하여 구현하면 되는 문제이다. 문자열을 저장하고 삭제할 deque와 최근 문자가 무엇인지 기억할 Stack을 이용해서..

article thumbnail
[BOJ/C++] 여우는 어떻게 울지? - 9536번
Algorithm 2023. 2. 14. 19:51

https://www.acmicpc.net/problem/9536 9536번: 여우는 어떻게 울지? 각 테스트케이스마다 여우의 울음소리를 한 줄씩, 녹음된 순서대로 출력한다. 여우의 울음소리가 녹음되어 있음이 보장된다. (알려진 것과는 달리, 여우는 모스 부호로 의사소통하지 않는다.) www.acmicpc.net 문자열 파싱 문제이다. stringstream을 이용하였다. 잘 안 쓰던거라 아래 블로그를 참고했따.. https://myprivatestudy.tistory.com/48 #include using namespace std; int main() { int tc; cin >> tc; cin.ignore(); while (tc--) { list ls; string s; string tmp; // 전..