Skip to content

algorithm shell sort

Jongbin Oh edited this page Jun 8, 2013 · 1 revision

CynicJJ

  • 간만에 깔끔히 풀려서 기분이 좋다

      Public Class ShellSort
      
      	Function GetMovingOrder(ByVal originalOrder As List(Of String), ByVal desiredOrder As List(Of String)) As List(Of String)
      		Dim original As New List(Of String)(originalOrder)
      		original.Reverse()
      		Dim desired As New List(Of String)(desiredOrder)
      		desired.Reverse()
      
      		Dim movedCount As Integer
      		Dim i As Integer
      		While i < original.Count - 1
      			If original(i) <> desired(i) Then
      				movedCount += 1
      				original.RemoveAt(i)
      			Else
      				i += 1
      			End If
      		End While
      
      		Dim result As List(Of String) = desiredOrder.GetRange(0, movedCount)
      		result.Reverse()
      		Return result
      	End Function
      
      End Class
    

Outbreak

문제 요약

  • 주어진 순서대로 스택을 정렬하기

문제 해결

  • 잘못된 생각
    • 아래서부터 위로 올라가면서 주어진 순서의 스택이 맞는지 확인
    • 아니면 해당 스택을 위로 올림
    • 위를 반복함.
  • 간단하게 생각했다가 낭패를 봄..
    • '최소횟수'를 고려하지 않았었음

소감

  • 이전에 풀어봤던 거라.. 다시 풀지 않음. ^^;
  • 브레인스토밍 시, 예전과 똑같이 '잘못된 생각'을 했네요..
  • 이 문제를 고른 이유는 '실제로 어디에 활용하면 좋을지' 응용 분야를 알아보면 좋을 것 같아서 였습니다.
  • 싱글 링크드 리스트를 주어진 순서로 정렬할 때 쓸만 할 것 같아요.

풀이

     // 없음 ㅋㅋㅋ

Clone this wiki locally