inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트로 배우는 자료구조 & 알고리즘 (개념+문제풀이)

[문제 풀이] 연결리스트 뒤집기 (연결리스트) ⭐️⭐️

연결리스트 뒤집기

71

민병현

작성한 질문수 1

0

 

function solution(arr) {
 return arr.reverse();
 
}

console.log(solution([1, 2, 3, 4, 5]))
console.log(solution([3, 2, 1]))

이런식으로 자바스크립트 내장함수사용해서 풀기보다는 연결리스트를 구현해서 한번씩 풀어보고 하는게 학습하는데 더 도움이되는걸까요??

javascript 코딩-테스트 알고리즘 data-structure

답변 2

0

Kyo

자바스크립트 내장 함수(reverse(), splice() 등)를 쓰면 빠르게 해결은 되지만, 연결리스트를 직접 구현해 보는 것은 도움이 된다고 생각합니다.


구현해 보면 포인터(다음/이전 참조), 노드 삽입·삭제의 비용, 그리고 자료구조 선택이 알고리즘 성능에 어떻게 영향을 주는지 직접 체감할 수 있고 문제풀이에도 도움이됩니다.

예를 들어 강의에서의 ‘영상 편집기 타임라인 관리’ 문제는 실제 카카오 코딩테스트로 출제되었던 ‘표편집’ 문제를 비슷하게 재구성한 문제입니다.

이 문제는 배열로 풀이는 가능하지만 배열로 풀게되면 효율테스트가 실패하게됩니다. 연결리스트를 모르면 풀지못하는 문제였다고 볼 수 있습니다.


따라서 연습 차원에서 연결리스트를 직접 구현해 보고, 이후 문제를 풀때 내장 함수를 쓰는 식으로 둘 다 익히는 것을 추천합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 민병현님.

질문해주신 내용에 대해 답변드리겠습니다. JavaScript와 같은 고수준 프로그래밍 언어는 편리한 내장 함수를 제공하여, reverse() 메서드를 사용하면 배열을 간단히 뒤집을 수 있습니다. 그렇지만, 자료구조에 대한 깊은 이해를 위해서는 직접 구현하는 것이 큰 도움이 됩니다.

연결리스트의 경우:
- 배열과 달리 메모리가 연속적이지 않으며, 각 노드가 다음 노드의 포인터를 가지는 방식으로 구현됩니다.
- 연결리스트를 직접 구현하면, 배열의 제한점을 보완하는 방법, 메모리 사용, 그리고 연결리스트의 특성을 상세히 이해하는 데 도움이 됩니다.
- 예를 들면, 연결리스트를 뒤집는 알고리즘은 지나가는 노드의 포인터를 변경하면서 진행하는 과정이 필요합니다.

이러한 과정을 통해 자료구조에 대한 보다 깊은 이해를 얻고, 알맞은 알고리즘을 설계하는 능력이 길러질 수 있습니다.

이와 관련된 구체적인 연결리스트 구현 방법이나 알고리즘에 대한 기존 답변를 참고하고 싶으시다면, 아래의 게시물을 추천드립니다:
- 자료구조와 알고리즘 기초부터 차근차근 이해하기: 기초적인 자료구조부터 심화 과정을 다루며, 코드 구현에 대한 이해를 돕습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

3강 질문

0

9

1

갑자기 채점 사이트가 바뀌었어요

0

14

1

74. 데이터 캐시 - 1 (이론) 강의 영상 누락

0

20

1

2강 nodejs 3단계 설명 질문

0

28

1

문제 리스트 페이지

0

19

1

part8 Notion 링크

0

17

1

채점 사이트 관련 질문드립니다

0

17

1

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

0

48

2

imagesLoaded에 관한 질문

0

18

2

useEffect와 lifecycle문의

0

26

2

2주차 개념#12 트리 순회

0

24

2

프론트엔드 학습 수준 문의

0

33

2

백준 사이트 서비스 종료

0

105

3

잠겨버린 사물함 시간초과 관련 질문입니다.

0

25

1

생산 공정 최적화 (이분탐색) worst Case 수정

0

52

1

버블정렬

0

46

1

학습 방향성에 대한 문의

1

75

2

큐 구현 관련

0

52

2

난이도 질문

0

90

2

강의 구현 코드

0

90

2

테스트 케이스 관련

0

71

1

공부방법 문의

0

75

1

알고리즘 개념에 대한 추천 자료문의

0

68

1

강의에 나온 selection 코드에 오류가 있습니다.

0

119

2