한번 배워본 대로 문제를 풀어보았습니다.
303
42 asked
1. 아 각 숫자가 두개씩 들어있는데 딱 한 숫자만 하나 들어있는 배열에서 하나만 든 숫자를 찾는거구나
2~3.
{10, 10, 20, 30, 30, 40, 40, 50, 50, 60, 60} 에선 20이 혼자
{7, 10, 6, 4, 22, 10, 4, 5, 6, 5, 22} 에선 7이 혼자
4. 음 같은 숫자가 두개씩 있는 배열에서 딱 한 숫자만 한개가 들어있으니까 중복을 허용하지 않는 set 자료구조를 사용해보자
5-1. 배열의 각 요소들을 순회하면서 차례대로 set에 넣어보자
5-2. set에 값을 넣을 때 이미 존재하는 값이면 리턴값은 false이다.
5-3. add의 리턴값이 false이면 set에서 해당 요소를 삭제하자
5-4. 모든 요소들에 대한 순회가 끝나면, set에는 딱 1개의 값만 남아있을 것이므로 stream으로 1개의 값을 획득한다.
5-5. 획득한 값을 리턴한다.
6. 즉 제가 제시한 방법의 시간복잡도는 배열의 길이만큼 순회하고, 거기서 다시 논리비교를 매번 하니 O(n²), 공간 복잡도는 O(n)입니다
복잡도가 익숙지 않아서 참 어렵군요
공간복잡도가 헷갈리는데, set에 n개만큼 더했다가 n개만큼 삭제하므로, n²이라고 생각했는데 잘 이해가 안갑니다.공간복잡도는 늘어난 것만 생각하고 줄어드는 것은 고려하지 않나요? 일단 계속 돌려보면서 이해하고 있겠습니당
Answer 1
0
안녕하세요. 공간 복잡도는 해당 로직이 수행되는 동안 필요로 하는 공간인데, 최종적으로는 나머지 값들은 쌍이 맞아서 삭제가 되고 하나만 남는다 하더라도, "수행되는 동안"에는 1, 2, 3, 4, 5, 4, 3, 2, 1 과 같은 입력값을 처리할 때 최대 5개의 공간이 필요하기 때문에 O(1)이 아니라 O(n)이라고 합니다.
미션 수업의 오른쪽 깃발이 안보여요?
0
552
2
솔루션 오류
0
471
2
이력서를 보내고 싶은데 이메일 주소를 모르겠습니다.
0
534
1
이력서 미션 제출합니다.
0
414
1
이력서 미션 제출합니다.
0
336
2
소프트스킬 과제 제출입니다.
0
447
1
이력서 미션 제출합니다.
0
429
2
실수와, 실패의 차이점
0
475
0
확실히 모르는 것에 대해 질문이 들어온 경우
0
600
1
이력서 미션 올립니다.
0
298
1
이력서 리뷰 부탁드립니다!
0
578
5
6:50의 span값이 이상합니다.
0
281
1
자기소개서 항목 질문
0
496
3
이력서 관련 질문드립니다.
0
216
1
문제 오타가 있는거 같습니다.
1
210
1
26. 고객 중심에 관한 질문입니다.
0
297
1
안녕하세요 기선님 질문 드립니다!
0
218
1
선생님 안녕하세요. 이력서 미션에 대해서..
0
344
2
스택의 재귀에 대해서 선장님께서 말씀하신 부분 디버깅 한 내용 공유드립니다~!
0
262
1
강의 자료는 공유 안해주시나요?
0
352
2
미션 누락 및 영상 오류(?) 제보
0
180
3
안녕하세요 String 리터럴 생성방식에 대해 질문있습니다.
0
152
1
미션이 누락되어 있네요 확인 부탁드립니다.
0
220
1
count==n-1 일때만 left = left.next 하신다고 하셨는데요
0
252
2

