알고리즘18 정렬 정렬과 레코드- 순서가 없는 사무들을 순서대로 나열하는 작업으로 오름차순, 내림차순이 있다- 정렬시켜야 할 대상을 레코드라 칭함- 필드라는 보다 작은 단위로 구성- key는 자료 정렬하는데 사용되는 기준이 되는 특정 값이다.- 레코드를 키의 순서로 재배열 하는 작업 정렬 실행방법- 비교식 정렬 : 비교할 각 키값을 한 번에 2개 비교 후 교환함으로써 정렬- 분배식 정렬 : 키 값을 기준으로 하여 자료를 여러개 부분집합으로 분해, 각 부분집합을 정렬함으로써 전체를 정렬 정렬 장소- 내부정렬 : 컴퓨터 메모리 내부에서 정렬- 외부정렬 : 메모리의 외부인 보조 기억장치에서 정렬 내부정렬에서 비교식과 분배식- 정렬할 자료를 메인 메모리에 올려서 정렬, 정렬 속도가 빠르지만 정렬할 수 있는 자료의 양이 메인 메모.. 2024. 8. 14. 자료구조와 알고리즘 자료구조란?- 컴퓨터에서 자료를 정리하여 조직화하는 다양한 구조- 자료를 정리하여 보관하기 위해 여러 가지 구조를 이용 자료구조의 분류- 선형 자료구조 : 자료를 일렬로 나열할 수 있는 구조이며 자료들 사이에는 반드시 순서가 존재한다. 자료의 접근이 전단과 후단으로만 제한되는 선형 자료구조는 스택, 큐, 덱이 있고 리스트는 임의의 위치에 있는 자료의 접근을 허용하는 가장 여유로는 선형 자료구조이다.- 비선형 자료구조 : 한 줄로 나열하기 어려운 복잡한 관계의 자료들을 표현할 수 있는 자료구조이다. 트리, 그래프, 집합이 있다. 자료구조의 표현 방법- 배열 구조 : 자료를 배열에 모아 저장하는 방법으로 모든 자료가 인접한 메모리 공간에 저장되며 각 정보를 쉽게 찾아 편리하지만 크기 제한이 존재한다.- 연.. 2024. 6. 26. 프로그래머스 Lv0 문자열 섞기 https://school.programmers.co.kr/learn/courses/30/lessons/181942 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이 문제는 주어진 2개의 문장의 원소들을 번갈아 가면서 answer = ' '에 추가해주면 된다.그렇기에 for문을 써서 범위는 str1의 길이만큼 돌게해줬다.번갈아 가면서 추가는 결국 (str1,str2) 한쌍이 추가 되는 것과 같기에 answer += str1[i] + str2[i]를 해준 후 return 해주면 된다. 2024. 5. 18. 프로그래머스 Lv0 문자열 뒤집기 https://school.programmers.co.kr/learn/courses/30/lessons/181905 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이 문제를 풀기 위해서는 리스트[인덱스:인덱스][::-1]의 표현을 알아야 한다. 이중리스트의 의미가 아니라 리스트의 해당하는 원소들을 그 길이만큼 역순으로 출력하겠다라는 의미이고 이를 사용해서 문제에 접근하면먼저 sub = my_string[s:e+1][::-1]를 사용해 해당하는 길이를 역순으로 출력한 값들을 sub에 대입한다.그 후 해당하는 길이 전의 원소들 + sub + sub이후의 원소들을 .. 2024. 5. 18. 프로그래머스 Lv0 글자 지우기 https://school.programmers.co.kr/learn/courses/30/lessons/181900 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이 문제는 my_string에서 주어진 indices의 위치를 가진 원소들을 제거하고 문자들을 이어붙여야 한다.따라서 for문을 써서 my_string의 길이만큼 반복하고 if i not in indices를 사용해서 i가 포함되어 있지 않으면 answer += my_string[i]를 해준 후 return해주면 된다. 2024. 5. 18. 프로그래머스 Lv0 빈 배열에 추가, 삭제하기 https://school.programmers.co.kr/learn/courses/30/lessons/181860 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이 문제는 먼저 flag가 True라면 빈 배열에 arr[i]*2만큼 arr[i]를 추가하고 False라면 arr[i]만큼 del answer[-1], 배열에 마지막 원소를 삭제한다.그렇기 위해서는 우선 for문과 if문을 사용해 flag가 True인지 False인지 확인하고 True라면 for_ in range(arr[i]*2)를 하는데 i번째 원소(정수) * 2만큼 answer.append(arr.. 2024. 5. 17. 이전 1 2 3 다음