작성
·
192
0
안녕하세요.
제 나름대로 풀어봤는데 자꾸 시간초과가 걸려서
해설 코드 보고 제 코드를 조금 수정했거든요.
원래 제 코드에서 dfs알고리즘은 동일하고 해킹된 컴퓨터 수 계산해서 출력하는 것만 바꿨는데 맞네요. 그런데 제가 보기엔 별 차이 없을 것 같은데 어디서 차이가 발생하는지 궁금합니다.
원래 코드
http://boj.kr/5ff0dc6ee81c41e5acf41f41a2b3e857
수정한 코드
답변 1
0
안녕하세요 gy님 ㅎㅎ
for (int i = 1; i <= N; i++)
{
if (max_cnt < dfs(coms, i))
{
max_coms.clear();
max_coms.push_back(i);
max_cnt = dfs(coms, i);
}
else if (max_cnt == dfs(coms, i))
{
max_coms.push_back(i);
}
지금 이부분에서 보시면 dfs를 연이여서 2번호출이 되는 코드입니다.
if문에 걸림 : if문의 dfs -> 안에 있는 dfs
만약 안걸림 : else if문의 dfs -> 안에 있는 dfs
이러한 불필요한 코드 때문에 시간초과가 나는 것 같습니다.
근데 사실 이 문제가 시간초과가 좀 타이트한 문제이기도 합니다. ㅎㅎ
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.