https://www.acmicpc.net/problem/2741
이 문제도 너무 쉬워서 바로 맞았습니다!! 받을 줄 알았다.
그런데 시간초과가 계속 뜨는 것이다 ㅜㅠㅠㅠ
검색해보고 5번째만에 통과했다 ㅠ
그 이유는 C++에서 cin cout는 printf scanf 보다 느리단다.. 왜!! 왜구런거야!!!
아무튼 그렇다고 한다 ..ㅜㅠ
그런데 cin cout 쓰고도 통과하는 경우가 있다(2번 코드)
#include <iostream>
using namespace std;
int main(){
int N;
scanf("%d", &N);
if((N>=1)&&(N<=100000)){
for(int i=0; i<N; i++){
printf("%d\n", i+1);
}
}
return 0;
}
-> printf와 scanf만을 사용했다
#include <iostream>
using namespace std;
int main(){
int N;
cin >> N;
for (int i=0; i<N; i++){
cout << i + 1 << "\n";
}
return 0;
}
-> 다른 사람 코드임!
-> cin과 cout를 사용했는데도 통과했다. 이유는 endl를 "\n"으로 대체했기 때문이다. endl를 쓰면 시간초과가 뜬다.
그럼 이 내용을 토대로 새로운 코드 작성!
#include <iostream>
using namespace std;
int main(){
int N;
cin >> N;
if((N>=1)&&(N<=100000)){
for(int i=0; i<N; i++){
cout << i+1 << endl;
}
}
return 0;
}
-> 시간초과 !!
#include <iostream>
using namespace std;
int main(){
int N;
cin >> N;
if((N>=1)&&(N<=100000)){
for(int i=0; i<N; i++){
cout << i+1 << "\n";
}
}
return 0;
}
-> 맞았습니다!!
신기하다! endl을 "\n"으로 바꿔주기만 해도 통과했다. 뭔가 C++ 보다 C 스럽게 적어주면 시간을 덜 잡아먹는 느낌이당