2447번 - 별 찍기 - 10
규칙 찾기가 귀찮아서(..) 프랙탈 구조를 통째로 클래스로 만들어서 구현했습니다.
an은 아래와 같은 걸 이용해서요
an/3 an/3 an/3
an/3 an/3
print(int x)는 an의 x번째 줄을 char*로 반환하는 함수고, 이는 an/3 등을 재귀적으로 호출하여 arr배열에 메모이제이션 하도록 했습니다.
실행시켜 보면 n이 적당한 값일 경우 (n <= 729) 제대로 실행 되는데, 이보다 커지면 코딩 메뉴에서는 출력 초과를, 제출했을 땐 런타임 에러를 일으킵니다.
런타임 에러는 아마 n이 최댓값(6561)일 때 약 5000만개의 배열이 생겨서 그걸 감당 못하는 건가 싶기도 한데 코딩창에서 어찌됐든 실행은 되는 걸 보면 꼭 그런 것도 아닌 것 같고=_=; 미묘하네요
소스가 안보여요!
@yukariko 어라 저는 다른 브라우저나 폰으로 들어가봐도 잘 보이는데요..?
이제 보이네요
아까전만해도 계속 새로고침해도 안보여서요 ㅎㅎ
소멸자를 지우고 제출해보니 정답이 뜨는군요 ㅎㅎ
아니면 small을 생성자에서 0으로 초기화 시키면 될듯 싶습니다.
그나저나 무지 빠르고 메모리도 적게쓰네요..
멋진 방법입니다
윽 이런 문제는 꼭 사소한 곳에서 틀리네요ㅜㅜ 감사합니다
진짜 빠르네요...
댓글을 작성하려면 로그인해야 합니다.
kyma123 9년 전
규칙 찾기가 귀찮아서(..) 프랙탈 구조를 통째로 클래스로 만들어서 구현했습니다.
an은 아래와 같은 걸 이용해서요
an/3 an/3 an/3
an/3 an/3
an/3 an/3 an/3
print(int x)는 an의 x번째 줄을 char*로 반환하는 함수고, 이는 an/3 등을 재귀적으로 호출하여 arr배열에 메모이제이션 하도록 했습니다.
실행시켜 보면 n이 적당한 값일 경우 (n <= 729) 제대로 실행 되는데, 이보다 커지면 코딩 메뉴에서는 출력 초과를, 제출했을 땐 런타임 에러를 일으킵니다.
런타임 에러는 아마 n이 최댓값(6561)일 때 약 5000만개의 배열이 생겨서 그걸 감당 못하는 건가 싶기도 한데 코딩창에서 어찌됐든 실행은 되는 걸 보면 꼭 그런 것도 아닌 것 같고=_=; 미묘하네요