Koala - 4기

[BOJ] 가희와 로그 파일 21774번

알 수 없는 사용자 2021. 7. 17. 01:38

백준에 제출을 할 경우 런타임 에러(Seg Fault)가 계속 뜨는데요. 찾아보니까 Seg fault 에러가 할당하지 않은 메모리 영역에 접근할 경우 뜨는 에러라고 하더라구요. 테스트 케이스를 이것저것 넣어봤을 때 결과는 제대로 나오는데 어떤 부분 때문에 SegFault 에러가 계속 뜨는지 잘 모르겠습니다..  

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;
vector<string> vec[7];

int main(void) {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int n, q;
	cin >> n >> q;
	getchar();
	for (int i = 0; i < n; i++) {
		string s, temp;
		getline(cin, s);
		
		for (int j = 0; j < s.length()-2; j++) {
			if (s[j] != '-' && s[j] != ' ' && s[j] != ':') temp += s[j];
		}

		int lv = s[s.length() - 1] - '0';

		for (int j = 1; j <= lv; j++) {
			vec[j].push_back(temp);
		}
	}


	for (int i = 0; i < q; i++) {
		string s, start, end, temp;
		getline(cin, s);
		for (int j = 0; j < s.length() - 2; j++) {
			if (s[j] == '#') {
				start = temp;
				temp.clear();
				continue;
			}
				
			if (s[j] != '-' && s[j] != ':' && s[j]!=' ') {
				temp += s[j];
			}
		}
		end = temp;

		int lv = s[s.length() - 1] - '0';

		int ans = upper_bound(vec[lv].begin(), vec[lv].end(), end) - lower_bound(vec[lv].begin(), vec[lv].end(), start);
		cout << ans << '\n';
	}

}