건전한 건전지
반응형
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; // 전..

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
[백준/CPP] 사이클 단어 - 1544번
Algorithm 2023. 2. 7. 00:56

https://www.acmicpc.net/problem/1544 1544번: 사이클 단어 사이클 단어는 어떤 단어를 원형 모양으로 차례대로 쓴 것이다. 따라서, 어떤 단어를 이렇게 쓴 후에 임의의 단어를 고른다. 그 후에 시계방향으로 차례대로 읽으면 그 것이 단어가 된다. 만약에 www.acmicpc.net 어떻게 풀어야 할지 감이 안 잡혀서 문제 태그를 보았다. 해시 테이블을 사용하는 것을 알고 감을 잡을 수 있었다. - 풀이- 1. 입력 받은 단어를 해시 테이블에서 검색한다. (set 사용) 2. 검색한 단어가 존재하지 않는다면 해당 문자열을 원형 큐처럼 돌리며 모든 경우를 해시 테이블에 넣어놓는다. 2-1. 정답 카운트를 1 늘린다. #include #define ll long long using..

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 = ..

article thumbnail
[백준/C++] 수 이어 쓰기 2 - 1790번
Algorithm 2023. 2. 2. 14:14

https://www.acmicpc.net/problem/1790 1790번: 수 이어 쓰기 2 첫째 줄에 N(1 ≤ N ≤ 100,000,000)과, k(1 ≤ k ≤ 1,000,000,000)가 주어진다. N과 k 사이에는 공백이 하나 이상 있다. www.acmicpc.net 문제 자체는 되게 간단하다. N과 K를 입력받아 1~N까지 숫자를 나열한 후 K번째 문자열을 찾기 첫번째 풀이 - 실패 (메모리 초과) #include using namespace std; string s = ""; int WriteNum(int start, int end, int targetNum) { while (start > n >> k; cout > n >> k; cout

article thumbnail
[백준/CPP] 계단 오르기 - 2579
Algorithm 2023. 2. 1. 14:39

https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 다이나믹 프로그래밍 문제 문제의 조건을 만족하면서 4번째 계단을 오르기 위해서는 빨간색 체크 표시 순서로 이동하거나 파란색 동그라미 순서로 이동하는 방법 밖에 없다. 첫번째 계단의 최댓값은 첫 계단을 밟았을 때가 되고, 두번째 계단의 최댓값은 첫 계단과 두 번째 계단의 합이 된다. 세번째 계단의 최댓값은 1번 계단 + 3번 계단 or 2번 계단 + 3번 계단 중 큰 값이다. dp[0] = vc[0]; dp[1..