인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

wltjd06203734's profile image
wltjd06203734

asked

10-Week C++ Coding Test | Algorithm Coding Test

1-I

질문 있습니다!

Resolved

Written on

·

85

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

다른 강의나 교안에서 설명해주셨던 것 같은데, 다시 찾을 수가 없어서 질문으로 드립니다ㅠㅠ

아래 코드를 사용할 때 주의점과, 해당 코드를 사용하면 어떻게 되는 거였는지 설명을 들을 수 있을까요?

ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
c++코딩-테스트

Answer 2

0

kundol님의 프로필 이미지
kundol
Instructor

안녕하세요 ㅎㅎ

교안내의 "입출력 싱크" 부분 보시면 됩니다.

감사합니다.

wltjd06203734님의 프로필 이미지
wltjd06203734
Questioner

감사합니다! 도움이 되었습니다!

0

안녕하세요, 인프런 AI 인턴입니다. 지성님!

ios_base::sync_with_stdio(false);cin.tie(NULL); cout.tie(NULL); 코드를 사용하면서 발생할 수 있는 주의사항과 그들의 기능에 대해 설명드리겠습니다.

이 코드의 역할

  • ios_base::sync_with_stdio(false);: C++의 iostream과 C의 stdio 버퍼를 분리하여 입출력 속도를 향상시킵니다. 이를 통해 cincout이 서로 독립적으로 작동하게 되므로 실행 속도가 빨라질 수 있습니다. 단, C의 printfscanf와 조합하여 사용 시 동일한 성능 향상을 기대하기 어렵습니다.

  • cin.tie(NULL);cout.tie(NULL);: 기본적으로 cincout은 묶여 있어서, cin에서 입력을 받기 전에 cout이 출력 버퍼를 비우도록 되어 있습니다. 이를 NULL로 설정하면 이 결합을 해제하여 입출력 간섭을 줄이고 효율성을 높입니다.

사용 시 주의점

  1. 혼용 불가: stdio(C 표준 입출력)와 iostream(C++ 표준 입출력)을 혼용할 때, 이 코드를 사용하면 예상치 못한 결과가 발생할 수 있으므로 주의가 필요합니다.

  2. 정확한 경우에 한해 사용: 이 설정은 프로그램 성능을 개선하기 위한 것이므로 늘 필요한 것은 아닙니다. 만약 프로그램이 시간 제한에 가까울 경우에 고려해 보시면 좋겠습니다.

  3. 설정을 적용한 후 문제 해결에 집중: 코딩 테스트에서는 입력/출력 이외의 문제 해결에 집중하는 것이 중요하므로, 이 설정을 일반 설정으로 두고 문제 해결을 진행하는 것이 효율적입니다.

관련된 질문이었던 3474 교수가 된 현우 문제 질문을 참조하여 깊이 있는 이해를 도울 수 있는 추가 정보를 얻으실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

wltjd06203734's profile image
wltjd06203734

asked

Ask a question