[입출력] 백준 2741 - N 찍기
카테고리: BOJ
태그: Coding Test Cpp Algorithm
C++로 풀이했습니다.
출처 : 백준 알고리즘 https://www.acmicpc.net/
N 찍기
2741번 문제 👉 https://www.acmicpc.net/problem/2741
난이도 👉 브론즈 3
1 차 풀이 🕑
만만하게 봤다가 시간 초과 떴던 문제… 😱
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; i++)
{
cout << i << endl;
}
return 0;
}
입출력 시간 비교
cout Vs. printf
- C++ 스타일인
cout
이 C 스타일인printf
보다 더 빠르다고 한다. - 역시 마찬가지로
cin
이scanf
보다 처리 속도가 빠르다.
endl Vs. ‘\n’
\n
이std::endl
보다 압도적으로 빠르다고 한다.⭐- endl 함수는 개행만 해주는 것이 아니라 내부 입력 버퍼 또한 비워주는 역할을 하기 때문이다.
- 내가 시간 초과 됐던 이유는 n 의 크기가 십만에 다다를 정도로 엄청나게 많이 출력 해야 할 때
endl
을 써서 매우 오래걸렸던 것.- 문제에서 n의 범위는 1 ~ 100,000 이라고 주어졌다.
엄청나게 많은 양의 출력을 해야할땐 endl 를 써선 절대 안된다. '\n'으로 출력하도록 하자.
2 차 풀이 ⭕
endl
을\n
로 바꿔주기만 하니 시간초과 문제가 바로 해결 되었다.
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; i++)
{
cout << i << '\n';
}
return 0;
}
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글남기기