목록알고리즘 (15)
제이슨의 개발이야기
fun InsertSort() { var array = arrayOf(32,8,5,12,1,9,2,4) for(i in 1 until array.size){ var index = i var temp = array[i] while (index>0 && array[index-1]>temp){ array[index] = array[index-1] index-- } array[index]= temp } for(i in array.indices){ println(array[i]) } } 삽입 정렬(insertion sort)은 아직 정렬되지 않은 임의의 데이터를 이미 정렬된 부분의 적절한 위치에 삽입해 가며 정렬하는 방식이다. 장점 가장 간단한 방식의 정렬 알고리즘 이다 대부분 이미 정렬이 된경우 효율적이다 단점..
안녕하세요! 오늘은 정렬 방식 중 Bubble Sort 를 코틀린으로 작성해보았습니다! 앞으로 시간이 될 때 마다 각 알고리즘을 코틀린 언어로 한번 작성해보려구 합니다! Bubble Sort 버블 소트 알고리즘 개념 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 아래에서 부터 시작하여 비교하면서 위로 올라가는 방식으로 마치 거품이 위로 올라가는 모습과 유사 하여 버블 소트 라고 합니다! 버블 소트의 장점 과 단점 장점 : 구현이 매우 간단하다 단점 : 순서에 맞지 않은 요소를 인접한 요소와 교환한다 하나의 요소가 가장 왼쪽에서 가장 오른쪽으로 이동하기 위해서는 배열에서 모든 다른 요소들과 교환되어야한다 특히 특정요소가 최종 정렬위치에 이미 있는 경우라도 교환이 일어난다 class BubbleSort ..
https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 안녕하세요 일요일 주말에 저는 프로그래머스 에서 다리를 지나는 트럭 이란 문제를 풀었습니다 제가 프로그래머스 에서 주로 레벨 1 부터 시작하다가 요 근래 레벨 2 로 올라가서 문제를 풀고있는대 여전히 저에게는 어려운거같습니다 ㅠㅠ 이 문제 푸는대 2틀정도... 걸린거 같고 그것도 모자라서 결국 구글 서칭을 통해 힌트를 얻어서 문제를 풀..
https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 안녕하세요... 현재시간 오전 12시48분.. 저는 방금 프로그래머스 에서 프린터 문제를 풀었습니다.... 아니 풀었다고 할 수 없습니다 저는 이 문제를 처음에 mergeSort 로 정렬한 다음에 위치를 찾으려고 몇일 온갖노력을 다했고 그게 여의치 않아서 다른 방식으로 풀려고 노력했지만 .... 결국 풀지 못했고 아무리 생각해도 모르겠어서 결국 구글링을 도움을 받아..