- Quiz
- Test Cases
- Solution
- Solution 1
- Solution 2
재정렬
링드리스트와 정수 k를 입력 받아, k값을 가지고 있는 노드 주위로 재배열한 링드리스트를 반환합니다.
링드리스트를 k값을 가지고 있는 노드 주위로 재배열하는 것은 k값의 노드 앞에 k보다 작은 값을 가진 모든 노드를 이동하고, k값 보다 큰 값을 가진 모든 노드를 k 노드 뒤로 이동하는 것을 의미합니다.
모든 이동된 노드는 원래 링드리스트에 있던 순서를 유지해야 합니다.
링드리스트는 k값을 가지고 있는 노드가 없는 경우에도 다시 정렬해야 합니다.
예제 1
입력
// 머리노드 값이 3인 링드리스트 k = 3
출력
// 머리노드 값이 0인 새로운 리스트 // 주의: 값이 0, 2, 1인 노드들은 // 원리스트에 있던 순서입니다. // 마찬가지로 노드 5, 4도 원리스트에 있던 순서입니다.
Test Case 1
Input
head = 3 -> 0 -> 5 -> 2 -> 1 -> 4 k = 3
Output
0 -> 2 -> 1 -> 3 -> 5 -> 4
Test Case 2
Input
head = 3 -> 0 -> 6 -> 2 -> 1 -> 5 k = 4
Output
3 -> 0 -> 2 -> 1 -> 6 -> 5
Test Case 3
Input
head = 3 -> 6 -> 5 -> 2 -> 1 -> 4 k = 0
Output
3 -> 6 -> 5 -> 2 -> 1 -> 4
Test Case 4
Input
head = 3 -> 0 -> 5 -> 2 -> 1 -> 4 k = 6
Output
3 -> 0 -> 5 -> 2 -> 1 -> 4
Test Case 5
Input
head = 1 -> 3 -> 1 -> 3 -> 1 -> 3 k = 2
Output
1 -> 1 -> 1 -> 3 -> 3 -> 3
- My Answer
- Lecture
- Output
프로그래밍을 이해하는데 꼭 필요한 알고리즘을 쉽고 빠르게 배울 수 있도록 준비한 강의 입니다.
코딩테스트를 준비하시는 분, 알고리즘에 대해서 전반적으로 공부하고자 하는 분들을 위해 꼭 필요한 토픽을 모아서 기초부터 고급 문제까지 단계적으로 구성되어 있습니다.
프로그래밍 언어는 JavaScript · Java · Python · C++ · C# 을 이용하여 브라우저에서 직접 프로그램을 작성 및 실행할 수 있으며, 알고리즘 강의를 통해 주어진 문제를 응용하여 다양한 솔루션을 작성하고 온라인에서 바로 테스트하면서, 알고리즘에 대해 좀 더 깊은 이해를 도와 드립니다.
코딩테스트 문제해설
온라인으로 코딩문제 풀면서 학습하는 사이트를 찾고 계신가요? W+코딩에서는 코딩공부 하면서 헷갈리는 부분을 알기 쉽고 정확하게 알려드립니다.
알고리즘 코드해설
바이너리트리, 링드리스트, 그래프, 다이나믹 프로그래밍, 그리디 등등등... JavaScript, Java, Python, C++, C# 솔루션을 정확하고 알기 쉽게 설명해 드립니다.