3474 교수가 된 현우 문제 질문입니다!
392
작성한 질문수 15
안녕하세요 큰돌님.
별거 아닌 문제긴 한데..
3474번의 경우
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
이런 코드를 입력하지 않으면 정답 처리가 되지 않아서 질문드립니다.
1. 입출력 시간을 줄여주는 코드인 것은 서칭을 통해 이해하였는데..
저 코드를 언제 넣고 언제 빼는지?
아니면 일반적으로 코테하는 사람들은
#include<bits/stdc++.h>와 같이 그냥 코드에 무조건적으로 넣어 놓는지가 궁금합니다.
2. 코테에서
#include<bits/stdc++.h> 와
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
혹은
scanf를 사용하기 위해
#define _CRT_SECURE_NO_WARNINGS 같은 코드를 사용해야 하는데..
이런 코드들은 서칭을 통해 넣을 수 있는 지 아니면 외우는게 당연한 코드인지 질문드립니다.
답변 1
1
안녕하세요. ㅎㅎ 해당부분은 교안에도 설명이 되어있는데요.
일단 scanf를 쓸꺼면 scanf만 쓰시고. cin을 쓰실거면 cin만 쓰셔야 합니다.
scanf를 쓰신다면 그냥 빠르니 그대로 쓰시면 되구요. #define : 외우시지 않으셔도 됩니다.
cin같은 경우 해당 부분은 외워주셔야 합니다. 이거 안되서 통과 안되는 문제도 있어요.
참고로 교안에는 다음과 같이 설명되어있습니다.
입출력 싱크
위 코드는 입출력싱크를 맞추는 것을 해제한다는 의미입니다. c++에서 대표적인 입출력 함수로는 cin, cout, scanf, printf가 있고 이는 시스템콜관련 함수이므로 같이 쓰일 때는 입출력싱크를 맞춰주어야 합니다.
또한 보통 cin, cout과 scanf, printf 중 scanf, printf가 빠릅니다.왜냐면 cin, cout은 c라이브러리인 stdio의 버퍼와 동기화하느라 시간을 소비하기 때문이죠.
이 때 cin, cout의 시간을 빠르게 해주는 방법이 있습니다. 바로 위코드처럼 싱크를 해제하여 버퍼 동기화를 하지 않는 것이죠. 하지만 이렇게 했을 때 반드시!!cin, cout를 쓸 때 scanf, printf를 쓰지 말아야 합니다. 동기가 풀리니 모르는 사이드 이펙트가 발생할 수도 있는 것이죠.
감사합니다.
0
혹시
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
이 코드를 넣는 기준을 알 수 있을까요??
이 코드를 삽입하지 않아서 틀린것인지 확실히 판별할 실력이 아니라서요.
기준이 있는지 궁금합니다.
1-E질문입니다!
0
515
2
3-L 틀린 부분 피드백 부탁드립니다.
0
815
2
1-A문제 순열재귀함수 질문입니다.
0
380
1
1-A 일곱난쟁이문제입니다
0
454
1
문제 풀 때 방향성에 대해
0
796
1
맥에서 vs code로 실행 관련 질문입니다
0
520
1
17071번 메모리 초과
0
384
1
1-C질문입니다!
0
417
2
2-B BFS 시간초과질문
0
628
2
1-O 13번 라인
0
437
1
6-J 놀이공원 문제 질문
0
379
1
구현관련 질문
0
481
1
강의 교안
0
316
1
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
0
544
1
안녕하세요! 재귀함수에 관해서 질문드립니다
0
534
1
1-K
0
471
2
3-G번 질문있습니다.
1
469
3
3-C 실행 시간 질문드립니다.
0
491
1
4-A 문제 풀이 질문있습니다.
0
589
2
비트마스킹 연산자 "1의 보수" 영문 표기법
0
433
1
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
0
332
1
3-O go 함수 질문 드립니다.
1
442
2
4-A 출력 질문
0
301
1
1주차 1-O 질문드립니다
0
253
1





