Loading...

[백준] 16916번 부분 문자열 (c++, kmp)

여러 번 공부하고도 이해못했는데 결국 피하지 못해 풀었다 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int ans = 0; //aabaa의 경우 a, aa, aab, aaba, aabaa 로 보는데 한글자인 a는 접두사,접미사가 같은걸로 보지 않음 // 따라서 i는 1부터 시작한다. vector makeTable(string p) {// 패턴문자의 접두사 접미사 구하기 int psize = p.length(); vector table(psize, 0); int j = 0; for (int i = 1; i 0 && p[i] != p[j]) { j..

[SWEA] 2948. 문자열 교집합 (C++, 해시)

해시에 첫 집합의 문자열들을 저장하고 두 번째 문자열 집합을 입력받을 때 검색해서 해시에 들어있는 문자열의 개수를 세준다. #define _CRT_SECURE_NO_DEPRECATE #include #include #include #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); int t, n, m; cin >> t; for (int tc = 1; tc > n >> m; string s; unordered_map hash; int cnt = 0; for (int i = 0; i > s; hash.insert({ s,s }); } for (int ..

[SWEA] 1256. K번째 접미어 (C++)

뒤에서부터 한 문자씩 끊어서 vector에 저장한 다음 사전순 정렬했다 #define _CRT_SECURE_NO_DEPRECATE #include #include #include #include using namespace std; int t,k; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cin >> t; string s; for (int tc = 1; tc > k; cin >> s; vector list; string tmp = ""; for (int i = s.length()-1; i>=0; i--) { tmp = s[i]+tmp; list.push_back(tmp); } sort(list.begin(), list.end()); cout

[swexpert] 1221. GNS (C++, 문자열)

입력받은 문자열의 실제 숫자 개수를 배열에 저장한다 (인덱스 = 숫자) 숫자 개수만큼 다시 문자열 형태로 출력해준다. #include #include using namespace std; int t; int getNum(string str) { if (str == "ZRO")return 0; if (str == "ONE")return 1; if (str == "TWO")return 2; if (str == "THR")return 3; if (str == "FOR")return 4; if (str == "FIV")return 5; if (str == "SIX")return 6; if (str == "SVN")return 7; if (str == "EGT")return 8; else return 9; } s..

[백준] 5525번 IOIOI (JAVA, 문자열)

www.acmicpc.net/problem/5525 5525번: IOIOI 첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다. (1 ≤ N ≤ 1,000,000, 2N+1 ≤ M ≤ 1,000,000) www.acmicpc.net import java.util.Scanner; public class Main { static int n,m; static String s; public static void main(String[] args) { Scanner sc=new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt();//s의 길이 s=sc.next(); StringBuilder sb=new StringBuilder(); f..

[LeetCode] 7.Reverse Integer (문자열 연산)

숫자를 문자열로 변환해서 뒤집은 다음 연산한다 class Solution: def reverse(self, x: int) -> int: x=str(x) x=x[::-1] if x[-1]=='-': x=int('-'+x[:-1]) x=int(x) if x>2**31-1 or x