본문 바로가기
  • 紹睿: 자유롭고 더불어 사는 가치있는 삶

분류 전체보기193

[선택 정렬] Selection sort - python 출처:https://ko.wikipedia.org/wiki/%EC%84%A0%ED%83%9D_%EC%A0%95%EB%A0%AC Selection Sort시간복잡도: 선택 정렬(selection sort)은 in-place 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다. 1. 주어진 리스트 중 최솟값을 찾는다2. 그값을 맨 앞에 위치한 값과 교체한다.3. 맨 처음 위치를 뺀 나머지를 같은 방법으로 교체한다. 9 1 6 8 4 3 2 0을 그림으로 표현해 보았당. 123456789101112def selection_sort(a): for i in range(len(a)-1): min_index = i for j in range(i+1, len(a)): if a[min_index] > a[j]: mi.. 2018. 6. 19.
[삽입 정렬] Insertion sort - python 출처: https://ko.wikipedia.org/wiki/%EC%82%BD%EC%9E%85_%EC%A0%95%EB%A0%AC Insertion Sort삽입 정렬(Insertion sort)은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여 자신의 위치를 찾아 삽입한다. 배열이 길어질수록 효율이 떨어지지만, 구현이 간단하다.선택정렬이나 거품정렬과 같은 알고리즘과 비교하면, 안정적인 정렬이고 in-place 알고리즘이다.(공간복잡도: 원소 자체를 저장하는 메모리 말고 추가적으로 필요한 임시 메모리에 대한 복잡도) 1234567891011121314def insert_sort(a): for i in range(1, len(a)): j = i-1 key = a[i] while .. 2018. 6. 19.
[버블 정렬] Bubble sort - python 출처: https://ko.wikipedia.org/wiki/%EA%B1%B0%ED%92%88_%EC%A0%95%EB%A0%AC Buuble Sort시간복잡도: 거품 정렬(Bubble sort)은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간복잡도가 {\displaystyle O(n^{2})}로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다. (시간복잡도: 문제를 해결하는데 걸리는 시간) 12345678910111213141516def swap(x,i,j): x[i], x[j] = x[j], x[i] def bubble_sort(a): for size in reversed(range(len(a))): for.. 2018. 6. 19.
[백준 알고리즘] 1475번 방 번호 문제:다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최소값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.) 입력:첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 풀이1) 6, 9는 6또는 9가 될수있다.그러므로, 9를 6으로 처리하여 1/2 처리했다. 123456789101112131415161718192021num = input() sets = {'0': 0, '1': 0, '2'.. 2018. 6. 18.
[리그오브레전드] 플레이메이커 리신이나왔다 ㅋㅋㅋㅋㅋㅋㅋ플레이메이커 리 신님이나왔다 상자갓갓 헤헤 이제 합치러가야지 ㅡㅡ안해 ㅎ.ㅎ.... 용사냥꾼 신짜오 + 프로젝트 카타 + 플레이메이커 리 신 합친게 이분임 ㅡㅡ 안해 2018. 6. 15.
[백준 알고리즘] 1924번 2007년 오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.입력첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(1≤y≤31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.출력 첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다. 달의 규칙을 찾아서 하려다가.. 굳이 그럴필요가 있나싶어서 (2007년이라고 못밖았으니까)그냥, months에 각 달의 일 개수를 더하라고 시켰다. 맘편하다 1234567891011M, D = input().split()M = int.. 2018. 6. 14.