이렇게 입력량도 작고 배열도 엄청 작을 수밖에 없는 문제에서 메모리 초과가 났다면 메모리 사용량을 '줄이는' 것이 문제가 아니라, 어딘가 프로그램이 크게 잘못 동작하고 있다고 생각해야 합니다.
sync_with_stdio(0);을 한 이후에는 C와 C++의 입출력 방식을 섞어쓰면 안 되는데 44번째 줄에서는 scanf를 쓰고 48번째 줄에서는 cin을 쓰고 있다는 것이 문제입니다.
이와는 별개로, cin.tie();는 아무런 의미가 없는 문장입니다. cin.tie(0);이라고 인자를 전달해야 의미가 있습니다.
cout.tie는 인자가 있든 말든 아무 의미가 없는 문장입니다.
ygy5315 3년 전 1
14501번 퇴사문제를 재귀함수 호출을 통해서 해당 일자를 선택하거나 스킵하고 다음 일자를 택해서 금액의 최대를 구하도록 풀었습니다.
다만 메모리 초과가 일어나서..... 혹시 어떻게 해야 줄일 수 있을지 조언을 구합니다!!
추가적으로 코딩 문제를 DFS 혹은 BFS로 풀경우 메모리 크기 계산은
다들 어떻게 계산하시는지 알수 있을까요?
저는 메로리 양은 거의 고려하지 않고 계산횟수로 1초 = 약 1억번 계산으로 해서 접근하는데..
메모리 초과 문제는 어떻게 계산 잡고 갈지 여쭙습니다!!
끝으로 긴글 읽어주셔서 감사드립니다!!