문자열 내 마음대로 정렬하기
·
코딩/프로그래머스 lv1
문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 입출력 예 설명 입출력 예 1 "sun", "be..
삽입 정렬 "특정한 테이터를 적절한 위치에 '삽입'한다"
·
알고리즘 공부/정렬
선택 정렬은 알고리즘 문제 풀이에 사용하기에는 느린편이다. '데이터를 하나씩 확인하며, 각 데이터를 적절한 위치에 삽입하면 어떨까?' 삽입 정렬은 선택 정렬처럼 동작 원리를 직관적으로 이해하기 쉬운 알고리즘이다. 삽입 정렬은 특정한 데이터를 적절한 위치에 '삽입'한다는 의미이다. 삽입 정렬 특징 1) 데이터가 거의 정렬 되어 있을 때 효율적이다. 2) 삽입 정렬은 특정 데이터가 적절한 위치에 들어가기 전, 그 앞까지의 데이터는 이미 정렬되어 있다고 가정한다. 3) 정렬되어 있는 데이터 리스트에서 적절한 위치를 찾은 뒤에, 그 위치에 삽입된다는 점이 특징 예시 step0) 첫 번째 데이터 '7'은 그 자체로 정렬되어 있다고 판단하고, 두 번째 데이터인 '5'가 어떤 위치로 들어갈지 판단한다. '7'의 왼쪽..
선택 정렬 '가장 작은 것을 선택'
·
알고리즘 공부/정렬
데이터가 무작위로 여러 개 있을 때, 이 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸 는 과정을 반복하면 어떨까? 가장 원시적인 방법으로 매번 "가장 작은 것을 선택" 한다는 의미에서 선택 정렬 알고리즘이라 한다. 선택정렬 설명 step0 ) 초기 단계에서는 모든 데이터가 정렬 되어 있지 않으므로, 전체 중에서 가장 작은 데이터를 선택한다. 따라서 '0'을 선택해 맨 앞에 있는 데이터 '7'과 바꾼다. 7 5 9 0 3 1 6 2 4 8 step1) 이제 정렬된 첫 번째는 제외하고 이후 데이터 중에서 가장 작은 데이터인 '1'을 선택해서 처리되지 않은 데이터 중 가장 앞에 있는 데이터 '5'와 바꾼다. 0 5 9 7 3 1 ..
정렬 "연속된 데이터를 기준에 따라서 정렬하기 위한 알고리즘"
·
알고리즘 공부/정렬
정렬 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 프로그램에서 데이터를 가공할 때 오름차순이나 내림차순 등 대부분 어떤 식으로든 정렬해서 사용하는 경우가 많기 때문에 정렬 알고리즘은 프로그램을 작성할 때 가장 많이 사용되는 알고리즘 중 하나이다. 보통 정렬부터 공부하면 '알고리즘의 효율성' 을 쉽게 이해할 수 있어 알고리즘 개론서 초반에 정렬 알고리즘을 설명하는 경우가 많다.