inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

섹션5 연속부분수열1 (Two Pointers Algorithm) 질문있습니다.

298

jinho Jang

작성한 질문수 1

0


강사님이 작성해주신 코드를보면 for문안에 while문을 돌려서 시간복잡도가 O(n^2) 아닌가요?

이렇게하면 시간복잡도가 O(n)이라서 아래의 코드가 더 좋은것 아닌가요?

javascript 코딩-테스트

답변 2

1

김태원

안녕하세요^^

for 문 안에 while문이 있는 중첩구조라고 해서 무조건 O(n^2)라고 생각하시면 안됩니다. 중요한 것은 "안쪽 반복문이 프로그램이 종료 될 때까지 몇 번 반복하는가?" 입니다.

제가 작성한 코드의 for문안에 있는 while문도 프로그램이 종료되는 동안 lt = 0 부터 시작해서 1씩 증가하면서 최대 n번 반복하고 끝나는 반복문입니다. 그래서 시간복잡도는 O(n)입니다.

제 강의 중 이번에 오픈한 "입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]" 강의의 "섹션 1 시간복잡도"의 두 번째 강의 "빅오표기법(1)" 을 미리보기로 열어 두었으니 한 번 시청하면 도움이 될 것 같습니다.

0

jinho Jang

감사합니다!~

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

강사님의 코드를 보지 않았으니 정확한 답변을 드리기는 어렵지만, 일반적으로 섹션 5의 연속부분수열1 문제에서는 투 포인터 알고리즘을 사용하여 시간복잡도 O(n)에 해결할 수 있습니다.
투 포인터 알고리즘은 주어진 배열 또는 리스트에서 특정 조건을 만족하는 부분 수열을 찾을 때 사용되는 알고리즘으로, 훨씬 효율적인 방법입니다.

따라서, 알고리즘에 대한 이해도가 있는 경우에는 투 포인터 알고리즘을 구현한 코드가 시간복잡도 O(n)으로 더 효율적일 수 있습니다.

하지만, 강사님의 코드가 정확히 어떻게 작성되었는지 알 수 없어서 상세한 답변을 드리기는 어렵습니다. 만약 투 포인터 알고리즘을 사용하지 않았거나, 강사님의 코드가 다른 목적을 가진 코드일 수도 있습니다.

따라서, 코드에 대한 자세한 내용을 알려주시거나 코드를 비교해보면 더욱 정확한 답변을 드릴 수 있을 것 같습니다. 감사합니다!

continue를 사용하는 이유

0

80

2

정렬 가능 여부 판단하기

0

64

2

알고리즘 학습법 관련해서 질문드립니다.

0

86

1

코드 리뷰 부탁드립니다!

0

90

1

indexOf를 사용해서 풀어보았습니다 !!

0

69

1

저는 이런식으로 구현 해보았습니다 !!

0

64

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

101

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

63

1

영상 보기 전에 직접 풀어봤습니다.

0

74

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

136

2

정규표현식으로 처리해도 상관없나요 ?

0

120

2

3칸씩 건너뛸 수 있을 경우

0

126

2

강의에 대해 질문있습니다.

0

135

2

Object와 Set을 이용해 풀어봤습니다.

0

117

2

이렇게 해도 되나요?

0

102

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

145

2

이렇게 풀어도 괜찮을까요?

0

138

1

이렇게 풀어도 괜찮을까요?

0

112

1

모든 아나그램 찾기에서 시간복잡도

0

98

1

코드리뷰 부탁드립니다.

0

130

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

133

1

투포인트알고리즘으로 풀어봤습니다.

0

142

0

코드 리뷰 부탁드립니다.

0

120

1

코드 맞게 작성한 거 아닌가여??

0

146

1