해결된 질문
작성
·
52
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
어느 부분 때문에 시간초과가 발생했는지 알고싶습니다ㅜㅜ
답변 2
0
안녕하세요 specture님 ㅎㅎ
for(int i=0;i<n ;i++){ //가로로 인접한 도시들 사이의 국경이 열리는 경우
for(int j=0 ; j<n-1 ;j++){
int s = abs(board[i][j] - board[i][j+1] );
if( s >= l && s <= r ){
door[i][j] = 1;
door[i][j+1] =1;
}
}
}
이부분 때문인 것 같은데요. 이 문제는 국경이 열린게 중요한게 아닙니다.
국경이 열리더라도 -> 인구이동이 일어나지 않으면 break;를 걸어야 합니다.
이부분을 고려해보시겠어요?
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. specture님.
시간 초과 문제와 관련해 여러 유사한 사례가 있는 것으로 보입니다. 시간 초과의 일반적인 원인을 살펴보고 해결 방법을 제시한 기존 질문들이 있기에 참고해보시면 도움이 될 것 같습니다.
“2-F 시간 초과 질문”: 이 게시물에서는 재귀 호출의 빈도에 따른 시간 초과 문제에 대한 해결책으로 반복문 변환과 메모이제이션 사용을 제안하고 있습니다. 이는 연산의 중복을 줄일 수 있는 효과적인 방법입니다.
“시간초과 문의”: 이 포스트에서는 endl
대신 "\n"
을 사용하여 입출력 속도를 높이는 방법을 소개합니다. endl
은 출력 버퍼를 비우기 때문에 생각보다 시간이 더 많이 소요될 수 있습니다.
“시간초과”: 이 게시물에서는 중첩 반복문의 복잡도를 줄이는 방법에 대해 논의합니다. 가능하다면 이러한 구조를 간소화하거나 더 효율적인 접근 방법을 찾는 것이 좋습니다.
시간 초과 문제는 복잡한 알고리즘의 설계와 관련된 경우가 많으므로, 코드를 최적화하는데 초점을 맞춰야 합니다. 우선적으로 알고리즘의 시간복잡도를 검토하시고 불필요한 연산이 발생하지 않는지 확인해 보시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다.
인구이동이 일어나지 않은 것에 초점을 맞춰서 코드를 다시 작성했더니 통과했습니다!