인프런 커뮤니티 질문&답변
77강 2-I. 맞왜틀 질문 드립니다.
해결된 질문
작성
·
24
0
안녕하세요 선생님.
선생님 코드를 보니
제 코드로 맞왜틀 여쭤보는것도 매우 부끄럽지만....ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ
나름 ㅠㅠㅠㅠㅠㅠㅠ열심히 풀어본거라 질문드립니다.
1>
첫번째 맞왜틀은 메모리 초과로 뜬 제 코드입니다.
어느 부분이 메모리가 문제가 되는지 파악할 수가 없어 질문드립니다.
http://boj.kr/475df48157ea4c62a50d11a33f8ba68d
2>
두번째 맞왜틀은 아예 틀렸다고 뜨는데
백준은 테스트케이스 뭐에서 오류가 났는지도 보여주지를 않아서 더욱 디버깅이 어렵네요.
어느 부분이 논리적으로 틀렸는지 여쭤봅니다.
http://boj.kr/c9b54bd0615e4adb98f97d025048ddda
감사합니다.!
답변 2
0
안녕하세요 blaire님ㅎㅎ
코드를 좀 봤는데 저도 메모리초과의 직접적인 이유는 사실 찾기가 어려운 것 같습니다.
다만, 이럴 때 비효율적이거나 쓸모없는 코드를 줄여나가다가 보면 해당 부분이 해결되곤 하는데요.
질문 몇개가 있습니다.
1, 2번 코드내에서
map을 쓰신 이유가 있을까요?
제 생각에 선형적으로 탐색하면서 로직 구축하는게 좋다고 생각해서요
for(auto it: m){
int curr = it.first;
if((prev!=-1 && ((curr-prev)!=1))){
a.push_back(s2);
s2.clear();
}
s2 += it.second;
prev = curr;
}이 코드 설명부탁드려도 될까요?
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. Blaire님.
제출하신 코드에 관한 답변을 드리겠습니다. 질문하신 두 부분에 대해 메모리 초과와 논리적 오류에 대해 살펴볼 수 있는 관련된 내용을 찾아보았습니다.
메모리 초과 문제: 메모리 초과는 주로 배열을 너무 크게 할당하거나, 무한 루프 또는 지나치게 많은 재귀 호출로 인해 발생할 수 있습니다. 메모리 초과가 발생할 가능성이 있는 부분을 점검해보고, 최적화할 수 있는 지점을 찾아보시는 것이 좋습니다. 비슷한 문제를 다루는 게시글을 참고하면 도움이 될 것입니다.
- 3-D 메모리 초과: memset 사용의 주의점과 메모리 사용을 줄이는 방법에 관한 답변입니다.
- 메모리 초과 관련 질문: 재귀 호출에 의한 메모리 초과 문제를 해결하는 방법에 대한 설명이 포함되어 있습니다.
- 3-D 메모리 초과: memset 사용의 주의점과 메모리 사용을 줄이는 방법에 관한 답변입니다.
논리적 오류 부분: 특정 입력에 대한 결과가 예상과 다를 때는 주로 코드의 논리 구조 또는 데이터 처리 순서가 잘못되었을 가능성이 높습니다. 문제의 요구사항을 다시 확인하고, 주어진 조건과 비교하여 코드가 올바르게 구현되었는지를 점검해보시기 바랍니다.
- 2-J 질문에 대한 답변: 코드의 논리적 오류를 해결하기 위한 코드 재구성 방법을 제안하고 있습니다.
- 2-J 질문에 대한 답변: 코드의 논리적 오류를 해결하기 위한 코드 재구성 방법을 제안하고 있습니다.
고민하시는 부분에서 특히 ‘조건문’과 ‘반복문’의 로직이 복잡하게 얽혀 있을 수 있으니, 조건의 평가 순서가 적절한지 다시 한번 검토해 보시기를 권장드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





