자료구조 54

백준 17413번 단어 뒤집기 C++

https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 스택을 사용해서 풀었다. ''가 나올때까지 나오는 문자는 바로 출력 '>'를 만날경우 다음 문자부터는 바로 출력하지 않고 스택에 삽입 ' ' 를 만날경우 안에 있으면 넘어가고, 밖에 있으면 스택을 비운다 #include #include #include #include #include #include #include #include #include #include #..

알고리즘 2023.05.15

백준 14235번 크리스마스 선물 C++

https://www.acmicpc.net/problem/14235 14235번: 크리스마스 선물 크리스마스에는 산타가 착한 아이들에게 선물을 나눠준다. 올해도 산타는 선물을 나눠주기 위해 많은 노력을 하고 있는데, 전세계를 돌아댕기며 착한 아이들에게 선물을 나눠줄 것이다. 하지만 www.acmicpc.net 우선순위 큐 #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::sync..

알고리즘 2023.03.20

백준 1935번 후위 표기식2 C++

https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 스택 사용, float가 아닌 double 사용해야 함. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long l..

알고리즘 2023.03.11

백준 14713번 앵무새 C++

https://www.acmicpc.net/problem/14713 14713번: 앵무새 자가용 비행기를 타고 세계 일주를 하던 pps789와 cseteram은 어느 날 엔진 고장으로 인해 이름 모를 섬에 불시착하게 된다. 그들은 이 섬을 탐험하는 도중 아주 신기한 사실을 알게 되었는데, 바로 www.acmicpc.net 단어들이 순서대로 맞춰졌는지와 모든 단어가 사용되었는지 있는지 확인해야한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int..

알고리즘 2023.02.27

백준 1972번 놀라운 문자열 C++

https://www.acmicpc.net/problem/1972 1972번: 놀라운 문자열 대문자 알파벳으로만 이루어져 있는 문자열이 있다. 이 문자열에 대해서 ‘D-쌍’이라는 것을 정의할 수 있는데, 이 문자열에 포함되어 있는, 거리가 D인 두 문자를 순서대로 나열한 것을 이 문 www.acmicpc.net #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; string str; int main() { ios_base..

알고리즘 2023.02.25

백준 13414번 수강신청 C++

https://www.acmicpc.net/problem/13414 13414번: 수강신청 입력 데이터는 표준 입력을 사용한다. 입력은 1개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 과목의 수강 가능 인원 K(1 ≤ K ≤ 100,000)와 학생들이 버튼을 클릭한 순서를 기록한 대기목 www.acmicpc.net map 로 입력받은 순서를 통해 우선순위를 정하고 원소들을 vector 으로 옮겨서 우선순위를 기준으로 오름차순 정렬 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using ..

알고리즘 2023.01.28

백준 2866번 문자열 잘라내기 C++

https://www.acmicpc.net/problem/2866 2866번: 문자열 잘라내기 첫 번째 줄에는 테이블의 행의 개수와 열의 개수인 R과 C가 주어진다. (2 ≤ R, C ≤ 1000) 이후 R줄에 걸쳐서 C개의 알파벳 소문자가 주어진다. 가장 처음에 주어지는 테이블에는 열을 읽어서 문자 www.acmicpc.net 루프마다 문자열을 새로 만들면 시간초과가 나서 처음에 전체 문자열을 만들고 substr로 구함 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace ..

알고리즘 2023.01.20

백준 18115번 카드 놓기 C++

https://www.acmicpc.net/problem/18115 18115번: 카드 놓기 수현이는 카드 기술을 연습하고 있다. 수현이의 손에 들린 카드를 하나씩 내려놓아 바닥에 쌓으려고 한다. 수현이가 쓸 수 있는 기술은 다음 3가지다. 제일 위의 카드 1장을 바닥에 내려놓는다. www.acmicpc.net 카드가 위에서부터 1~n의 순서로 놓여져 있기 때문에 기술을 쓴 정보들은 뒤에서부터 1~n의 숫자를 조작한 것이다. 이 정보를 이용하여 덱 자료구조를 사용해서 초기 카드의 상태를 구할 수 있다. 1인 경우는 push_front 2인 경우는 맨 앞의 수를 저장하고 pop_front 한 뒤 push_front, 저장한 정보를 push_front 3인 경우는 pop_front #include #incl..

알고리즘 2023.01.10

백준 19640번 화장실의 규칙 C++

https://www.acmicpc.net/problem/19640 19640번: 화장실의 규칙 위와 같이 줄을 선 경우를 생각해보자. (x, y) 는 사원의 근무 일수가 x, 화장실이 급한 정도가 y임을 나타낸다. [x, y]는 해당 사원이 데카임을 의미한다. 즉, 위의 그림에서 데카는 3번 사원이다. www.acmicpc.net 각 줄을 큐로, 줄의 맨 앞 사람들을 우선순위 큐로 관리해서 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; u..

알고리즘 2022.12.24

백준 20920번 영단어 암기는 괴로워 C++

https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net map을 통해서 각 단어가 몇번 나왔는지 기록하고 조건에 맞게 정렬하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include..

알고리즘 2022.12.23