[입출력] 백준 2741 - N 찍기

Date:     Updated:

카테고리:

태그:

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보다 더 빠르다고 한다.
  • 역시 마찬가지로 cinscanf보다 처리 속도가 빠르다.

endl Vs. ‘\n’

  • \nstd::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;
}


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

댓글남기기