2/23 제로베이스스쿨 Study Note

김예슬·2023년 2월 24일
  • 오늘의 진도: 알고리즘1 5번 ~ 알고리즘2

  • 순위 : 수의 크고 작음을 이용해서 수의 순서를 정하는 것

    -숫자들끼리 크기를 비교하면서 작은 숫자에 1씩 더해주며 순위를 정해준다.
    -순위 알고리즘 코드

    -결과

    → rank는 1등, 2등처럼 등수를 나타내기 때문에 ranks 인덱스에 1씩 더해주어 표현한다.

  • 버블정렬
    -처음부터 끝까지 인접하는 인덱스의 값을 순차적으로 비교하면서 큰 숫자를 가장 끝으로 옮기는 알고리즘

    -버블정렬 알고리즘 코드

    →새롭게 알게된 것: 아이템끼리 자리를 바꿔줄 때,
    nums[j], nums[j+1] = nums[j+1], nums[j] 구문(python에 내장된 기능)을 사용해주면 두 값의 자리가 바뀐다.
    -결과

  • 삽입정렬
    -정렬되어 있는 자료 배열과 비교해서 정렬 위치를 찾음

    → 한 정렬이 끝나면 그 다음 숫자와 앞에 정렬된 배열과 비교해서 또 다시 정렬하는 방법
    -삽입정렬 알고리즘 코드(오름차순)

    -결과

    -삽입정렬 알고리즘 코드(내림차순)

    -결과

    -삽입정렬 알고리즘 코드(함수 사용)

    asc = True 이면 오름차순 정렬이 되고, asc = False 이면 결과값과 같이 내림차순 정렬이 된다. 함수를 이용하면 사용자가 편하게 원하는 정렬방식을 선택할 수 있다는 점이 확연하게 느껴졌다.

오늘의 학습 느낀점: 알고리즘은 개념자체도 익숙하지 않은데, 이걸 코딩하려고 하니 더 여럽게 느껴졌다. 그렇지만, 어렵게 느껴진다고 안할 수는 없으니.. 역시 다시 한 번 더 강의를 들으면서 복습해야겠다. 반복밖에는 답이 없다...

0개의 댓글