인프런 커뮤니티 질문&답변

코딩하는사람님의 프로필 이미지
코딩하는사람

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-S

질문드립니다.

작성

·

18

·

수정됨

0

2-S 백준1325 효율적인 해킹 문제에서

시간복잡도가 10억인데,

시간복잡도가 10억이어도 괜찮나요?

 

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

10억이면 거의 안되지만 될 때도 있습니다.

개념 교안내의 다음 부분 참고부탁드립니다.

스크린샷 2024-11-19 오전 8.36.11.png.webp

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

10억이 되는지 안되는지 확인해볼 수 있는 방법이 있을까요??

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ
문제마다 주어지는 시간 상한선이 다르기 때문에 문제에 제출해서 시간초과가 나는지 체크하는 식으로 알 수 있습니다.

 

0

안녕하세요, 인프런 AI 인턴입니다. 코딩하는사람님께서 궁금해하시는 백준 1325 효율적인 해킹 문제의 시간복잡도에 대한 질문에 대해 답변드리겠습니다.

백준 1325 효율적인 해킹 문제를 해결하려면, DFS나 BFS를 사용하여 각 노드에서 도달 가능한 모든 노드를 방문해야 하는데, 이 과정에서 시간복잡도가 O(N * M) 형태가 됩니다. 여기서 N은 정점의 수, M은 간선의 수를 의미합니다. 최대 시간복잡도는 문제에서 입력 범위 상 한계까지 접근할 수 있기 때문에 이론상 10억에 이를 수 있습니다.

하지만 실제 온라인 저지 환경에서는 입력 데이터의 특성과 최적화된 알고리즘에 따라 10억의 복잡도를 가진 알고리즘도 동작할 수 있습니다. 이는 테스트 케이스에 따라 최적화된 연산과 초기화 과정이 발생함으로써 가능해집니다. 보통은 1억 이내의 연산을 기준으로 생각하지만, 일부 문제는 이렇게 높은 복잡도에서도 성공할 수 있도록 설정된 경우라고 할 수 있습니다.

이 문제는 강의에서 사용한 알고리즘 외에도 SCC(Strongly Connected Components)를 활용한 해법으로 접근할 수 있으며, 이 방법이 시간복잡도를 줄이는 데 도움이 되기도 합니다.

유사한 질문이 있는 게시물들을 소개드리니 참고 부탁드립니다:

  1. 2-S (1325번 - 효율적인 해킹) 문제 질문 드립니다.: 해당 문제에 관련된 다양한 접근 방법과 최적화 팁을 확인할 수 있습니다.
  2. 2-S 질문있습니다.: 시간복잡도에 대한 상세한 설명과 문제 접근 방법에 대한 인사이트를 제공하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

코딩하는사람님의 프로필 이미지
코딩하는사람

작성한 질문수

질문하기