inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

40번 교집합 문제

166

dongdong

작성한 질문수 5

0

image.png

선생님, 제가 이 방법으로 처음에 풀었었는데 알고리즘 상으로는 1초안에 들어오는 방법인가요?? 맞다면 c배열의 범위를 어떻게 지정해야되는지 잘 모르겠어서 질문드립니다!(stdio.h랑 vector는 위에서 선언했습니다)

c++ 코딩-테스트

답변 1

0

인프런 AI 인턴

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

dongdong님 질문에 답변 드리겠습니다. 제시하신 코드는 두 개의 벡터 ab에서 공통된 원소를 찾아내는 알고리즘으로 보입니다. 이 방법의 시간 복잡도는 입력되는 nm의 크기에 따라 다르며, 주어진 조건에서는 대체로 1초 안에 실행될 수 있으나, nm의 최댓값에 따라 다릅니다.

c 배열의 범위는 ab 배열에 있는 수의 최댓값에 따라 결정됩니다. 만약 ab에 들어갈 수 있는 수의 범위가 한정되어 있다면(예: 1부터 1000까지), c 배열의 크기도 그에 맞춰 설정할 수 있습니다. 그러나 입력 값의 범위가 넓을 경우, 더 큰 배열을 선언하거나 다른 방법을 고려해야 할 수 있습니다.

또한, 공간 복잡도를 줄이기 위해서는 해시 테이블(예: std::unordered_map)을 사용하는 방법도 고려해볼 수 있습니다. std::unordered_map을 사용하면 다양한 범위의 수들을 효과적으로 관리할 수 있으며, c 배열의 크기를 크게 설정할 필요가 없어지게 됩니다.

결론적으로, 제시하신 코드의 효율성은 주로 입력 크기와 c 배열의 적절한 범위 설정에 달려 있습니다. 입력되는 수의 최댓값을 아신다면, c 배열은 그에 맞춰 크기를 설정하시면 됩니다. 그러나 최댓값이 크거나 불명확할 경우에는 해시 테이블 사용을 고려해보세요.

87번 채점 프로그램에 오류가 있는 것 같습니다.

0

87

2

그리디 파트

0

114

2

안녕하세요. 선생님(54번 코드 관련 문의)

0

141

2

테스트 파일 exit_coe_1, time_limit_exceeded 질문

0

142

1

C언어로 코드를 짜면 채점 시에 한 문제 빼고 시간 초과가 발생하는데 해결하는 방법이 있을까요?

0

171

1

19번 질문있습니다

0

121

1

6번 관련 채점오류입니다

0

87

2

22번 문제는 C로 풀어주신 건가요 C++로 풀어주신 건가요?

0

165

2

dev C++ 콘솔창 바로 닫힘

0

245

1

최신화하기

0

170

1

채점이 안되요...

1

260

1

안녕하세요 강사님 정렬에 대해서 설명이 조금 더 듣고 싶습니다.

0

113

1

45번 공주구하기 문제를 list를 이용해서 이렇게 풀어도 될까요?

0

155

1

39번 두 배열 합치기 문제 채점 오류인가 코드 오류인가

0

154

0

채점기에서 틀렸다고 나오는데 이유를 모르겠습니다.

0

148

2

해당 강의에서 C언어로만 진행하는 강의 문의 건

0

143

2

87번 문제 섬나라 아일랜드 질문

0

128

1

16번 문제에서 직접 답을 대입하면 정답이 나오는데 채점에서 wrong answer가 나옵니다.

0

148

1

43번 뮤직비디오 문제 테스트케이스 4번을 만족 못합니다.

0

168

1

41. 연속된 자연수의 합 문제 질문있습니다.

0

164

1

질문있습니다.

0

191

2

시간초과가 나요

0

172

1

43번 문제 3 ~ 5번에 문제가 있는것 같습니다.

0

247

1

43번 채점결과

0

413

2