본문 바로가기

백준2

[C/C++] - 입력 개수를 모를때 (EOF까지 입력받기) 1. EOF란? EOF란 End - Of -File을 뜻하는 말로, 파일의 끝에 도달했음을 의미한다. 파일의 끝인 경우에는 TRUE, 파일의 끝이 아닌 경우에는 FALSE를 반환한다. 주의! 마지막 입력에서 판단하는 것이 아니다. 마지막 입력 다음, 더 이상 읽을 데이터가 없을 경우에 EOF가 TRUE를 반환한다. 2. EOF인지 판단하는 방법 ① scanf 가 입력받은 인자의 갯수를 이용하기 scanf는 입력받은 인자의 개수를 반환하는 특성이 있다. 예를 들어, scanf(%d, %d, &a, &b); 를 통해 2개의 정수 a와 b를 정상적으로 입력받았다면, scanf의 값은 2가 된다. int a, b; //scanf를 통하여 2개의 인자 a와 b가 정상적으로 입력되었다면 while(scanf("%d.. 2023. 12. 13.
[C++] - 시간초과가 발생하는 경우 해결 방법 C++를 이용하여 백준 문제를 풀면서 시간초과가 발생하는 경우, 아래의 두 줄을 추가해주면 해결되기도 한다. ios::sync_with_stdio(false); cin.tie(null); 이 코드의 의미가 무엇인지 알아보자. ios_base::sync_with_stdio(false) 간단히 말해, C와 C++의 동기화를 비활성화시키는 코드이다. 단, 이 구문을 쓰게 되면 C와의 동기화가 해제되어 버퍼가 분리되었기 때문에 C의 입출력 방식(scanf, printf, gets, puts, getchar, putchar 등)을 사용할 수 없게 된다. 그러므로 입출력을 할 때 cin, cout와 같은 C++의 입출력 방식만 사용해야 한다. cin.tie(null) cout > name; c++에서는 기본적으로 .. 2023. 11. 29.