본문 바로가기

string14

[백준 5555/c++] 반지 문자열의 특성상 이어붙였을때 특정 문자열이 속해있는지를 확인하려면 그 문자열을 같은 걸로 2번 붙여주면 된다 https://www.acmicpc.net/problem/5555 5555번: 반지 당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을 www.acmicpc.net #include using namespace std; int main(){ int num; int cnt = 0; string ori; string s; cin >> ori; cin >> num; for (int i = 0; i > s; s += s; if (s.fi.. 2022. 7. 27.
[백준 1120/c++] 문자열 문자열의 양옆에 더미를 붙여서 경우의 수를 모두 만들고 그 경우를 모두 비교하여 차이를 벡터에 넣고 벡터에서 가장 작은 수를 구하고 더미의 수만큼 빼면 되는 문제였다 https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net #include using namespace std; int main(){ int diflen; int cnt = 0; int ans; vector v; string a, b, temp; str.. 2022. 7. 24.
[백준 10815/c++] 숫자 카드 맵을 사용하여 해시 카운트를 사용, 큰 수 이므로 숫자가 아닌 문자열의 형태로 넣어 비교하는 문제였다 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m; string s; unordered_map mapi; c.. 2022. 7. 15.
[백준 14425/c++] 문자열 집합 문자열끼리의 집합에서 같은 문자열이 있는지 찾고 그 수를 카운트 하는 문제다 무작정 for 문으로 if == 으로 비교하기엔 수가 너무 많아 시간초과가 될 수 있으므로 map 이나 set 등을 써서 hash 를 이용해서 찾도록 하여 연산 속도를 높여 시간내에 풀 수 있다 굳이 정렬이 필요하지 않으므로 unordered_map 을 사용하였다 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net #include using.. 2022. 7. 10.