시간복잡도 질문드립니다.
199
9 câu hỏi đã được viết
int mySolution(String jewels, String stones) {
int count = 0;
for(char jewel : jewels.toCharArray()) {
for(char stone : stones.toCharArray()) {
if (jewel == stone) {
count ++;
}
}
}
return count;
}
제가 작성한 코드입니다.
쥬얼리 같은경우 유니크하다 했으므로 중복된 자료가 없기 때문에 set자료구조에 굳이 담을 필요가 있을까 생각해서 이런식으로 코드를 짰는데요
시간복잡도상 강사님과 같은 방식이 더 효율적인게 잘 이해가 되질 않습니다.
이중포문인 것은 알지만 자료구조에 담는시간 및 재확인 시간도 있기 때문에 시간상 제가짠 코드가 더 괜찮지 않을까란 의문이듭니다.
어떻게 이해하면 좋을까요?
Câu trả lời 1
1
고성빈님 , 안녕하세요 ~~~
질문 주셔서 감사합니다.
시간복잡도를 물어 보셨는데요. 시간복잡도는 면접에서도 서로에 생각을 물어보면서
답하고 개발한 소스코드에 대해서 얼마나 빠르게 메모리를 적게 쓰면서 해결할 수 있는지 물어보죠..
제 소스 코드는 로그가 2 + 7개가 찍힙니다.
for문을 각 각 두번 돌리죠, 아래처럼 그래서 시간복잡도는 O(J.length + S.length)
O(M+N)이고 결국 M=1000만개, N=1000만개를 돌려도 2천만개니까
O(N)으로 보시면됩니다. 이해하시겠죠??
고성빈님 소스는 14개가 찍힙니다(아래그림). 이중 for문이지만 jewel과 stone의 length가 다르므로
O(M*N) 이죠 , O(J.length * S.length)
for문을 두번돌리면 역쉬 좋지는 않죠?
제가 한 방법처럼 for문 각각 한번씩 돌리면 O(N)이 되니까 제가 한 방법으로
하시는게 낫습니다.
강의자료에 나오는 m과 n의 범위가 코딩하고 다른거 같습니다
0
252
0
나선형매트릭스 깃허브에 코드가 없는것같아요
0
206
0
로그 파일의 데이터 재정렬 코드가 깃허브에 없어요!
0
220
0
새로 생긴 기초강의 질문드려요
1
372
1
질문드립니다
1
218
1
Unique Paths Integer 질문입니다
0
217
1
subString 방법으로 문제 풀이 영상은 짤린건가요?
1
250
1
DFS 방식으로 푼 것이 맞나요?
0
305
2
질문드립니다~
0
194
1
left if문에 대해서
1
253
1
오타 인가요?
1
235
1
안녕하세요 강사님
1
186
1
질문 드립니다
0
170
2
Queue&Stack 문제해설집 문의
0
182
1
문제분석 로직 질문
1
227
1
시간 복잡도 문의드립니다.
1
229
1
for-each 문 질문있습니다!
0
292
1
강의영상에서 사용된 로그 메소드가 궁금합니다.
2
279
2
강의자료 + 문제 이해 관련 질문입니다
1
276
3
강사님 오류맞나요?
1
204
1
강사님 시간 복잡도에 대해서 질문드립니다.
1
170
1
질문입니다.
1
200
1
문제에 대한 이해
1
312
1
visited 체크 시점 질문있습니다!
1
504
1

