inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

40. 교집합 (투포인터 알고리즘 : MS인터뷰 제한시간 1초)

구현 측면 질문이 있습니다.

243

kkt169

작성한 질문수 47

1

안녕하세요 선생님.

저의 경우에는 39번 문제의 두 배열을 합치는 매카니즘을 이용하여 해결하였습니다.

0. 사용자로 부터 두 배열을 입력 

1. 입력받은 두 배열을 각각 정렬 알고리즘을 사용하여 오름차순으로 각각 정렬

2. 오름차순으로 정렬된 두 배열을 합친다 

3. 이후 합쳐진 결과가 저장된 배열에서 중복된값만을 출력한다

저의 경우는 위의 논리를 기반으로 구현하였습니다.(사실상 39번 구현 코드와 큰 차이가 없습니다) 

제 생각으로는 이렇게 구현하여도, 시간복잡도 측면을 생각해 본다면 선생님이 설명해 주신 투포인터 알고리즘으로 구현하든, 제 방식으로 구현하든 , 시간복잡도 측면은 동일하다고 생각되는데요, 제가 맞게 생각한건지 궁금합니다.

-> 어차피 논리가 다른 부분은 위의 과정에서 두 배열을 합치냐 아니면 vs 바로 비교하냐 인데 , 두배열을 합치든 바로 비교하든 결국 두 방법에서 사용되는 loop은 어차피 배열 하나만을 scan하는 O(n)의 시간복잡도를 갖는다고 생각합니다.

C++ 코테 준비 같이 해요!

답변 1

0

김태원

안녕하세요^^

네. 맞습니다. 거의 동일한 복잡도입니다.

테스트 케이스 질문

0

389

1

병합정렬 시간복잡도 질문

0

475

1

41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.

0

1365

2

질문드립니다.

0

392

1

질문드립니다!

0

437

1

dev 프로그램 질문

0

276

1

문제가 이해가 안되요

0

380

1

4번 나이차이 문제 접근법 질문 드립니다.

0

309

1

source file not compiled

0

1066

3

59번 질문드립니다.

0

376

1

25번 문제 질문

0

351

1

4. 나이차이 문제 질문입니다.

0

377

1

90번 라이언 킹 심바 1번 테스트 케이스

0

473

1

71번 문제 전역 변수 질문 있습니다

0

366

1

75번, 79번 priority_queue관련

1

361

1

75.최대 수입 스케줄

0

404

2

복면산 정답의 수

0

437

1

테스트 케이스에 대해서

0

450

1

수업 내용 질문입니다!

1

236

1

풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!

0

841

2

12. 플로이드-와샬(그래프 최단거리) . 27:25초

0

257

1

다른 풀이 방식

0

319

1

크루스칼 vs 프림

0

314

1

숫자 총개수 small 질문있습니다.

0

246

1