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

치킨님의 프로필 이미지
치킨

작성한 질문수

자바 코딩테스트 - it 대기업 유제

7. "비밀 번호" 코드 해설

7번 비밀 번호 문제에 시간복잡도가 궁금합니다!

작성

·

113

0

안녕하세요! 선생님 덕분에 매일 알고리즘 푸는 법을 재밌게 배우고 있습니다 🙂

문제의 제한 사항에 "password의 길이는 200,000을 넘지 않습니다." 라서 효율성을 생각하고 풀어야 된다고 하셨는데, 인접한 숫자를 찾는 과정에서 삼중 for문을 사용하는 것이 괜찮은지 궁금합니다!

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
치킨님, 알고리즘 문제 해결에 대한 궤적을 듣고 정말 기쁩니다. 😊

문제에서 password의 길이가 최대 200,000이라고 명시되어 있다면, 실제 대회나 면접 등에서는 시간 제한을 고려해야 할 경우가 많습니다. 이런 상황에서 삼중 for문은 O(n^3)의 시간복잡도를 가지기 때문에 문제를 효율적으로 풀기에는 적합하지 않을 수 있습니다.

보통 이러한 큰 입력 범위에 대해 O(nlogn) 이하의 시간복잡도를 갖는 알고리즘을 생각해야 제한 시간 내에 문제를 해결할 수 있습니다. 인접한 숫자를 찾는 과정에서 이진 탐색, 투 포인터, 해시 테이블, 또는 세그먼트 트리 같은 다양한 데이터 구조를 활용하여 시간복잡도를 줄일 수 있는 접근법을 고려해보시는 것이 좋을 것 같습니다.

계속해서 효율적인 알고리즘을 학습하며 실력을 키우시면 더 높은 단계의 문제 해결능력을 갖출 수 있을 겁니다. 화이팅입니다! 🌟

치킨님의 프로필 이미지
치킨

작성한 질문수

질문하기