(C++) cout,cin vs printf,scanf
배경
백준 알고리즘 문제중, 빠른 A + B 문제를 풀고 있었습니다. 전의 A + B 와 다른점은 테스케이스가 최대 1,000,000 라는 점입니다. 이때 기존의 cout과 cin을 사용해서 문제를 푼다면, 시간 초과가 발생하게 됩니다. 만약 cout과 cin을 사용해서 문제를 풀고 싶다면 문제 내에서 서술되어있는 방식으로 풀면 되지만, 구글 검색시에 편법을 사용한다는 느낌이 들었습니다. C++에서도 C처럼 printf와 scanf를 사용할 수 있고, 보다 빠르다는 말을 들어 사용법을 정리해보았습니다.
내용
cout의 경우 아래처럼 printf로 사용이 가능합니다. 정수의 경우 %d를 사용합니다.
printf("printf() 함수를 사용합니다.\n");
// 변수를 사용하고 싶은경우.
printf("변수에 저장된 숫자는 %d입니다.", 10);
int a = 10;
printf("변수에 저장된 숫자는 %d입니다.", a);
형식 지정자는 여러개로, 문자나 문자열, 실수형 등 사용이 가능합니다. 자세한 내용은 아래의 표와 같습니다.
cin의 경우 scanf 로 사용이 가능하며, 아래와 같이 사용합니다.
int a,b;
// a와 b에 저장합니다.
scanf("%d%d", &a, &b);
위 예제에서 scanf에 포함된 &기호의 경우 주소 연산자라고 합니다. 주소 연산자는 입력받은 데이터를 뒤에 나오는 변수에 저장하라는 의미를 가지고 있습니다.
요약
1. 시간이 중요한 문제에서 cin과 cout보다 printf와 scanf를 사용하는것이 빠릅니다.
2. cin과 cout을 사용해서 문제를 풀 수도 있지만, 그다지 추천하지는 않는것 같습니다.
출처
표 출처 : http://tcpschool.com/c/c_intro_printf
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
'프로그래밍 > C++' 카테고리의 다른 글
(C++) 문자 출력시에 특수문자 사용하는 법 (백준 개, 백준 고양이, 10171,10172) (0) | 2020.08.24 |
---|---|
(C++) 만약 cout 사용시에 시간초과가 나타난다면? (0) | 2020.08.24 |
[사소한궁금증] (C++) cout 과 std::cout 의 차이는 무엇일까? (0) | 2020.08.24 |