
테스트는 잘 되는데 계속 내면 출력초과가 떴다. 그래서 보니까 파일 끝에서 멈춰줘야 해서
while(!cin.eof())
로 while문의 조건을 바꿔줬는데도 계속 틀렸다고 떴다. 계속 질문게시판을 찾아보면서 나와 비슷한 오류인 사람들을 참고했는데 밑에처럼 바꾸니까 되었다.
#include <iostream>
#include <cmath>
using namespace std;
void Cantor(char array[], int start, int end ){
if(start != end){
int k = (end - start +1)/3;
for(int i = start + k;i < start + 2*k; i++){
array[i] = ' ';
}
Cantor(array, start, start + k - 1 );
Cantor(array, start + 2*k, end);
}
}
int main(void){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int num;
while(cin>>num){
int N = pow(3,num);
char array[N];
for(int i=0;i<N;i++){
array[i] = '-';
}
Cantor(array, 0, N-1);
for(int i=0;i<N;i++){
cout<<array[i];
}
cout<<'\n';
}
}
https://www.acmicpc.net/board/view/120317
위의 글을 읽어보고 고쳤다......