근본없는 코딩

[C++] 백준1152 단어의 개수 본문

✔ Online Judge

[C++] 백준1152 단어의 개수

근본없는 개발자 2023. 6. 25. 15:53

#include <iostream>
using namespace std;
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	char str[1000001];
	int cnt = 1, i;

	cin.getline(str, 1000001);

	for (i = 0; i < 1000000; i++) {
		if (str[i] == ' ') cnt++;
		if (str[i+1] == '\0') break;
	}
	if (str[0] == ' ') cnt--;
	if (str[i] == ' ') cnt--;
	cout << cnt << '\n';

	return 0;
}

 

✔️ tie 함수의 중요성

. cout.tie(), cin.tie()가 그 함수인데, 인자로 NULL을 넣어주게 되면 아무 스트림과도 tie를 하지 않겠다는 의미가 되어 cin과 cout은 서로에게 영향을 주지 않고 빠르게 작동할 수 있습니다.

처음에 제출했을때, 속도가 생각보다 오래걸려서 왜 느린지 한참을 헤맸습니다.

다른사람들 코드를 보다보니 tie 함수를 사용하고 안하고의 차이가 발생하던 것!

c++에서 cin/cout을 사용 할 때, 가능한 습관적으로 위 3줄을 적도록 합시다.

'✔ Online Judge' 카테고리의 다른 글

[C++] 백준5622 다이얼  (0) 2023.06.25
[C++] 백준2908 상수  (0) 2023.06.25
[C++] 백준2675 문자열 반복  (0) 2023.06.25
[C++] 백준10809 알파벳 찾기  (0) 2023.06.25
[C++] 백준11720 숫자의 합  (0) 2023.06.25