출처: https://3months.tistory.com/307 [Deep Play]

백준/String 8

[BOJ] 5525 IOIOI

https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net 문제 N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 군데 포함되어 있는지 구하는 프로그램을 작성하시오. 입력 첫째 ..

백준/String 2022.03.11

[BOJ] 9935 문자열 폭발

https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 문제 상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다. 폭발은 다음과 같은 과정으로 진행된다. 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다. 새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다. 폭발은..

백준/String 2022.02.18

[BOJ] 1748 수 이어 쓰기 1

https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 나에게 큰 고뇌를 주는 문제... 수 이어 쓰기 2를 풀다가 안풀려서 1을 풀어봤는데 확실히 쉽당~ 자리수를 i라고 할 때 i*(pow(10,i)-pow(10,i-1))만큼 자리 수가 늘어난다는 것을 활용하여 풀었다. #include #include using namespace std; int main(){ int N; cin>>N; int tmp=N,cnt=0; while(tmp!=0){ tmp/=10; cnt++; } int sum=0; for(int i=1;i

백준/String 2021.09.07

[BOJ] 1515 수 이어 쓰기

https://www.acmicpc.net/problem/1515 1515번: 수 이어 쓰기 세준이는 1부터 N까지 모든 수를 차례대로 공백없이 한 줄에 다 썼다. 그리고 나서, 세준이가 저녁을 먹으러 나간 사이에 다솜이는 세준이가 쓴 수에서 마음에 드는 몇 개의 숫자를 지웠다. 세준 www.acmicpc.net 왜 난이도가 실버 4인지 모르겠다. 최소 실버 1은 되야하는 문제. 고민하다가 친구의 도움을 받아서 해결했다. 나는 처음에 조건을 걸어 풀려고 했다. 하지만 조건이 너무 많더라. 항상 느끼는 건데 이런 유형의 문제는 규칙이 너무 많다. 아니 어쩌면 규칙이 없을 수도 있다. 이런 문제를 만난다면 규칙을 찾기 보다는 큰 데이터 하나를 만들어서 돌리는 것이 훨씬 빨리 문제를 풀 수 있다. 대신 시간복..

백준/String 2021.09.06

[BOJ] 5430 AC

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net string을 다루는 능력을 길러주는 문제이다. 나는 deque를 사용하여 R이 들어올 경우 flag을 사용하여 pop_front()를 할지 pop_back()을 할지 결정하였다. 주의 할 점은 입력받는 배열을 크기가 0인 경우에도 내 코드는 ""이 들어가기 때문에 예외 처리를 해줘야 한다는 것이다. #include #include #include #include using namespace std; int main(){ cin.tie(0); cout...

백준/String 2021.09.06

[BOJ] 1316 그룹 단어 체커

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문자가 들어 온 적이 있는데 전에 문자와 같지 않다면 카운트를 하지 않는 식으로 구현하였다. #include #include #include using namespace std; bool check[26]; int main(){ cin.tie(0); cout.tie(0); ios::sync_with_stdio(0); int N; cin>>N; int cnt=0; w..

백준/String 2021.09.06

[BOJ] 22232 가희와 파일 탐색기

https://www.acmicpc.net/problem/22232 22232번: 가희와 파일 탐색기 첫 번째 줄에 jo_test 폴더에 있는 파일 개수 N과 가희가 설치한 OS에서 인식하는 파일 확장자의 개수 M이 공백으로 구분되어 주어집니다. 2번째 줄부터 N+1번째 줄까지 FILENAME.EXTENSION 형식의 문자열 www.acmicpc.net 쉬워 보이지만 시간이 많이 걸렸던 문제이다. sort에 cmp함수에는 아무리 작은 계산이라도 넣으면 시간 초과가 난다는 것을 잊지 말자. #include #include #include #include #include using namespace std; vector all; map ex; bool cmp(pair a,pair b){ if(a.first...

백준/String 2021.08.30