제가 계속 했었을 때 시간초과가 떴었습니다. 그래서 시간초과가 왜 떴을까? 라는 고민을 하면서 구글링을 해봤는데요
밑에 보시면 답이 나와있습니다.
문제
자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
출력
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
만약 소스를 다 적고 5,4,3,2,1까지 출력이 됐는데 [시간초과]라고 뜨시는 분들은 다음과 같습니다.
첫 번째로 반복문(for, while)등을 사용해서 시간이 오래 걸린다는 점이 있습니다.
두 번째로 입출력 방식에서 여러 개를 받거나 출력할 때 시간초가가 날 수도 있습니다.
세 번째로 [endl]라는 함수를 썼기 때문입니다. 그래서 [\n]로 바꿔줘야 합니다.
즉, 이 문제에서 문제점은 [endl]를 쓰는 것이 아니라 ["\n"]을 써야 됩니다.
입출력 상황이나 반복적이 많으면(cin/cout)을 사용하시면 cin.tie(NULL), cout.tie(NULL), sync_with_stdio(false)를 적용해주시길 바랍니다.
(제 그 전글을 보시면 입출력이 많은 상황에서 java는 무엇을 써야되고 C++에서는 무엇을 써야되는지 글을 기재해놨습니다.)
소스코드 보시겠습니다.
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
for(int i=a; i>0; i--)
cout<<i<<"\n";
}
이상 포스터를 마치겠습니다. 감사합니다.
'알고리즘' 카테고리의 다른 글
백준 알고리즘 2441번 별 찍기 -2 C/C++ 문제풀이 (0) | 2020.05.19 |
---|---|
백준 알고리즘 1924번 2007년 문제 C/C++ 문제풀이 (0) | 2020.05.17 |
백준 알고리즘 11721번 - 열 개씩 끊어 출력하기 C++ 문제 풀이 (0) | 2020.05.16 |
백준 알고리즘 11720번 숫자의 합 C++ 문제풀이 (0) | 2020.05.15 |
백준 알고리즘 11719번 그대로 출력하기 2 C++ 문제풀이 (0) | 2020.05.14 |