SENTENCE 문제 질문입니다.. redglim http://www.algospot.com/judge/problem/read/SENTENCE 계속 오답이 뜨는데.. 아무리 머리를 굴려봐도 이유가 생각이 안나네요.. 생각 못한 경우가 있을 것 같은데... 힌트 좀 부탁드려요.. #include <string> #include <algorithm> #include <iostream> using namespace std; int search(string db[], string key, int begin, int end) { if (begin >= end) { return begin; } int med = (begin+end) / 2; int comp = db[med].compare(key); if (comp==0) return med; else if (comp>0) return search(db, key, begin, med-1); else return search(db, key, med+1, end); } bool startsWith(string a, string b) { if (a.compare(0, b.size(), b) ==0) return true; } int main() { int n, k; scanf("%d %d\n", &n, &k); int cnt = 0; string book[1001]; for (int i=0; i<n; i++) { getline(cin, book[i]); } sort(book, book+n); for (int j=0; j<k; j++) { string nak; getline(cin, nak); int pos = search(book, nak, 0, n-1); if (startsWith(book[pos], nak)) cnt++; else { if (pos > 0) { if (startsWith(book[pos-1], nak)) {cnt++;continue;} } if (pos < n-1) { if (startsWith(book[pos+1], nak)) {cnt++;continue;} } } } printf("%d\n", cnt); } 12년 전
1개의 댓글이 있습니다. redglim 셀프 답변합니다.. startsWith 에 return false; 를 안했네요 -_-;;; 덕분에 하루 종일 삽질... 12년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
redglim
http://www.algospot.com/judge/problem/read/SENTENCE
계속 오답이 뜨는데..
아무리 머리를 굴려봐도 이유가 생각이 안나네요..
생각 못한 경우가 있을 것 같은데...
힌트 좀 부탁드려요..
12년 전