해결된 질문
23.11.14 12:41 작성
·
201
1
항상 강의 잘 듣고 있습니다.
큰돌 선생님 강의 듣고 다시 풀어서 제출을 해봤는데 메모리 초과가 뜨더라고요.
그래서 원인을 분석해본 결과 y, x를 moveSwan 함수와 waterMelt 함수에서 지역 변수로 선언할 때 메모리 초과가 뜨는 것 같습니다.
반복문 안에서 변수 선언을 하게 되면 메모리에 부하가 생기는 건가요?
메모리초과 코드
http://boj.kr/69f8be6483e4422ca6c664262980c394
맞은 코드
https://www.acmicpc.net/source/share/4807660d703449afa8092bcb3f32552f
답변 2
1
2023. 11. 15. 08:28
안녕하세요 상민님 ㅎㅎ
1.
백조의 호수는 시간,메모리가 타이트한 문제입니다.
사실.. 이거가지고는.. 영향력이 미약합니다.
보통의 문제는 다 통과가 됩니다.. 이문제만 좀 타이트하다고 생각해주세요 ㅎㅎ
bool moveSwan() {
while(swanQ.size()) {
int y = 0, x = 0;
네 맞습니다. 지역변수는 전역변수보다 더 많은 양의 메모리를 사용하지 못합니다. 그렇기 때문에 이런 문제가 발생하는 것 같습니다.
해당 부분은 교안내의 다음 부분 참고 부탁드립니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0