-
[1일 1백준 : 2941번] 크로아티아 알파벳Programming/백준 2021. 1. 26. 22:52
여기서 decltype(strSize)은 size_t와 같다.
#include <iostream> #include <string.h> int compare(const char * str1,const char * str2) { int compare = 0; size_t i; for (i = 0; str1[i] != '\0'; i++) { if (str1[i] != str2[i]) break; } compare = str1[i] - str2[i]; if (compare == 0) compare = 0; else if (compare < 0) compare = 1; else compare = -1; return compare; } /* "c-" "dz=" "d-" "lj" "nj" "s=" "z=" */ bool DetectCroatiaAlphabet(const char * alphabet) { if (compare(alphabet, "c=") == 0 || compare(alphabet, "c-") == 0 || compare(alphabet, "dz=") == 0 || compare(alphabet, "d-") == 0 || compare(alphabet, "lj") == 0 || compare(alphabet, "nj") == 0 || compare(alphabet, "s=") == 0 || compare(alphabet, "z=") == 0) return true; return false; } int main(void) { std::cin.tie(NULL); std::cout.tie(NULL); std::ios::sync_with_stdio(false); std::string str; std::cin >> str; int cnt = 0; size_t strSize = str.size(); bool isContain = false; for (decltype(strSize) i = 0; i < strSize; i++) { isContain = false; for (decltype(strSize) j = i; j < strSize; j++) { std::string c = str.substr(i, (j - i) + 1); if (DetectCroatiaAlphabet(c.c_str())) { cnt++; i += strlen(c.c_str()) - 1; isContain = true; break; } } if (!isContain) cnt++; } std::cout << cnt << "\n"; return 0; }
'Programming > 백준' 카테고리의 다른 글
[1일 1백준 : 1712번] 손익분기점 (0) 2021.01.28 [1일 1백준: 1316번] 그룹 단어 체커 (0) 2021.01.28 [1일 1백준 : 5622번] 다이얼 (0) 2021.01.25 [1일 1백준 : 2908번] 상수 (0) 2021.01.24 [1일 1백준 : 1152] 단어의 개수 (0) 2021.01.23