건전한 건전지
반응형
article thumbnail
[Programmers/Level2] 프로그래머스 - 짝지어 제거하기 [C++풀이]
Algorithm 2023. 9. 16. 02:49

https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정말정말 오랜만에 푸는 알고리즘 문제... 연속으로 같은 문자가 나오면 제거해주고 앞 뒤를 이어 붙여서 다시 체크한다. ABBAAA 면 true, ABBBAA 면 false가 나온다. 문자열이 홀수개라면 구성과 관계없이 false. 보자마자 Stack을 이용해야 한다는 것을 알았지만 너무 오랜만이라 구현이 오래걸렸다 ㅜ 풀이 #include using namespace std; int soluti..

article thumbnail
[BOJ/C++] 자유 이용권 - 25635번 / CPP 풀이
Algorithm 2023. 4. 9. 14:02

https://www.acmicpc.net/problem/25635 25635번: 자유 이용권 자유 이용권은 놀이공원의 모든 놀이기구를 횟수의 제한 없이 마음껏 이용할 수 있는 이용권이다. 준원이는 ANA 놀이공원의 자유 이용권을 구매했고, 최대한 많이 놀이기구를 이용할 생각이다. www.acmicpc.net N개의 놀이기구가 있다. 각각의 놀이기구에는 이용 가능 횟수가 적혀있고 자유이용권을 가지고 최대한 많은 놀이기구를 이용하고 싶다. 단, 각각의 놀이기구는 연속으로 이용할 수 없다. N개의 놀이기구를 모두 이용하는 조건은 (이용 가능 횟수가 가장 많은 놀이기구 -1)이 나머지 놀이기구의 이용횟수들 보다 작거나 같아야 한다. 즉, (나머지 횟수) >= (제일 횟수가 많은 기구 -1)이 되어야 이용 횟수..

[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 : 그 자체로 팰린드롬 팰린드롬을 만드는 규칙이 있을까? 길이를 반으로 나누어 문자를 추가하고 합..

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
[BOJ/C++] 전화번호 목록 - 5052번 C++ 풀이
Algorithm 2023. 2. 12. 17:27

https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 자료구조 트리의 한 종류인 트라이를 사용하여 구현하는 문제 #include #include using namespace std; class Node { public: Node* child[10] = { nullptr, }; bool finished = false; Node() { for (int i = 0; i < 10; i++) { child[i] = nullptr; } ..

article thumbnail
[백준/C++] 블로그 - 21921번
Algorithm 2023. 2. 5. 15:25

https://www.acmicpc.net/problem/21921 21921번: 블로그 첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다 www.acmicpc.net X일의 연속된 방문자 합의 가장 큰 값을 찾는 문제 보자마자 슬라이딩 윈도우를 떠올렸다. 첫번째 풀이 - 실패 (시간초과) #include using namespace std; int main() { cin.tie(NULL); cout.tie(NULL); ios::sync_with_stdio(false); int n, x; cin >> n >> x; vector vc; int maxN = ..