inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-S

2-S 자바스크립트 코드 질문있습니다!

290

ukgi

작성한 질문수 6

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

  1. http://boj.kr/4407e944ea384e408f615a6ef1ca8be5

  2. http://boj.kr/b5895e45632846f2b6f7448082492dda

안녕하세요.
2-S 문제를 자바스크립트로 구현해보았는데
첫번째 링크의 코드와 두번째 링크 코드의 차이는 그래프를 맵으로 구현한 것과 배열로 구현한 것 차이라고 생각합니다.
맵 자료형의 Value에 해당하는 부분도 배열로 구현했기에 두 코드의 시간복잡도가 동일하다고 생각했는데 첫번째 링크는 통과하고 두번째 링크는 시간초과가 나옵니다.
맵으로 구현한 코드가 O(V+E)라면 배열로 구현한 코드가 O(V*E)라서 시간초과가 나는걸까요??

감사합니다!

c++ 코딩-테스트

답변 2

0

큰돌

안녕하세요 찬욱님 ㅎㅎ

C++ 이외의 다른 언어로는 질문을 받지 않습니다.

 

감사합니다.

0

인프런 AI 인턴

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

JavaScript에서 맵(Map) 자료형과 배열(Array)를 사용하여 그래프를 구현할 때의 시간 복잡도 차이에 대한 질문을 주셨군요.

일반적으로 맵 자료형은 키-값 쌍을 저장하며, 키를 통해 값을 빠르게 억세스할 수 있어 탐색, 삽입, 삭제 연산에서 평균적으로 O(1)의 시간 복잡도를 가집니다. 반면 배열은 인덱스를 통해 억세스하기 때문에 인덱스에 따라 데이터를 빠르게 접근할 수 있으나, 특정 값을 찾기 위한 탐색에서는 최악의 경우 O(N)의 시간이 소요됩니다.

그러나 그래프 구현에서 두 자료형의 시간 복잡도가 항상 다르게 나타나는 것은 아닙니다. 맵과 배열 모두 그래프의 특정 노드에 연결된 모든 노드를 방문하는 연산은 O(E)의 시간 복잡도를 가진다고 볼 수 있습니다. 문제는 어떻게 그래프 데이터를 접근하고 처리하는가에 달려 있습니다.

제시한 링크의 두 코드 사이에서 발생하는 시간 초과는 그래프를 어떻게 구현했는지도 중요하지만, 그보다는 그래프 탐색 알고리즘의 전체적인 구현 방식과 효율성에 더 크게 좌우될 가능성이 높습니다. 가령, 맵을 사용하는 경우에는 존재하지 않는 키에 접근할 때 바로 ‘undefined’ 등을 반환받을 수 있지만, 배열을 사용하는 경우에는 불필요하게 전체 배열을 확인할 필요가 있을 수도 있습니다. 따라서 전체 코드의 로직을 점검하고 어디에서 비효율적으로 시간이 소요되고 있는지 확인해보는 것이 좋겠습니다.

그리고 말씀하신대로 맵을 이용한 그래프 구현이 탐색에서 더 빠를 수 있으며, 배열을 이용한 경우에는 동일한 연산에서 더 많은 시간이 소요될 수도 있습니다만, 이는 전체적인 알고리즘의 복잡도와도 밀접한 연관이 있습니다. 그래프의 정점(V) 수와 간선(E) 수에 따라 시간 복잡도가 달라지기 때문에 구현 방식에 따라 O(V+E) 또는 O(VE) 등으로 달라질 수 있습니다.

참고로 인프런에서는 알고리즘 관련 질문보다는 강의 이용과 관련된 문의를 메인으로 다루고 있습니다. 코드상의 문제를 해결하고 싶으시다면 문제의 원인을 더 구체적으로 분석해 보시고, 그래프 구현 방식 외에도 전체 로직에서의 최적화 가능성을 살펴보시는 것도 좋을 것 같습니다.

감사합니다!

코딩살구클럽 입장이 안됩니다

0

3

1

4-F 경우의 수 질문입니다.

0

24

2

코딩살구클럽 가입이 안됩니다.

0

50

2

살구 클럽에 대한 질문있습ㄴ디ㅏ

0

40

1

교안 158페이지 문의드립니다

0

37

2

코딩살구클럽 관련 건의사항

0

94

1

코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다

0

39

1

진행 방법 질문드립니다!

0

72

2

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

61

2

2주차 개념#12 트리 순회

0

32

2

백준사이트가 종료된다고 합니다.

0

301

2

백준 서비스 종료

9

913

1

sk 하이닉스 코테 대비

0

377

2

3-G 최댓값 질문

0

52

1

모듈러 연산 값이 10이 아닌 경우도 있지 않나요?

0

84

2

3-I 코드 질문드립니다.

0

63

2

3-N 질문 있습니다.

0

68

2

학습방법

0

104

2

4-H 질문 있습니다 (코드 리뷰)

0

67

2

코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.

0

178

2

2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.

0

70

2

2주차 개념 #4-2. 인접행렬 질문있습니다.

0

65

2

1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.

0

52

2

조합 재귀 풀이 확인 해주시면 감사하겠습니다.

0

69

2