새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 내일배움캠프
  • til
  • 스파르타코딩클럽
  • portfolio
  • 프로그래머스
  • machine learning
  • Github
  • 코딩프로젝트
  • 코린이
  • 국비지원
  • Selenium 4
  • 내일배움카드
  • 코딩
  • docker
  • 내일배움단
  • Python
  • 자기주도학습
  • TodayILearned
  • 개발일지
  • AI트랙

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네

12시 지난 새벽

TIL

9-17[알고리즘] 강의 복습

2022. 9. 17. 23:54

TIL

알고리즘 공부를 계속해오다가 등의 개념과 자료구조들을 한 번씩 다시 복습하는 것도 도움이 많이 될 것으로 생각하여 복습하는 시간을 가졌다.

 

시간 복잡도 코드가 실행될 때 걸리는 시간의 복잡도 상수의 변화량보다는 지수의 변화량에 집중하여 판단할 것

공간 복잡도 해당 코드가 사용하는 물리적인 공간의 크기를 나타내어 보는 것 시간 복잡도와 효율에 크게 영향을 미칠지 생각해보면 시간 복잡도가 더 큰 영향을 줄 때가 많다. 

그리고 이렇게 효율성을 평가할 때 점근 표기법이라는 것을 사용하게 되고 보통은 최악의 성능이 나올 때의 경우를 생각하는 빅오 표기법으로 표현을 한다.

 

이것 이외에 기초적인 내용을 복습하였으며 그중에서

소수의 판별 에라토스테네스의 체를 이용하여 다이내믹 프로그래밍을 생각해서 다시 코드 구성을 해보았고

def find_prime_list_under_number(number):
    check_array = [i for i in range(2, number + 1)]
    for check in check_array:
        for j in range(2, number // check + 1):
            if check * j in check_array:
                check_array.remove(check * j)

    return check_array

아스키코드를 이용한 문자열 판별

def find_not_repeating_character(string):
    alphabet_check_array = [0]*26
    check_answer_array =[]
    for s in string:
        ascii_s = ord(s) - ord("a")
        alphabet_check_array[ascii_s] += 1

    for i, alpha in enumerate(alphabet_check_array):
        if alpha == 1:
            check_answer_array.append(chr(i + ord("a")))

    for check in string:
        for check_array in check_answer_array:
            if check_array == check:
                return check

    return '_'

링크드 리스트 자료구조를 직접 구현

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self, value):
        self.head = Node(value)

    def append(self, value):
        cur = self.head
        if cur.data == None:
            cur.data = value

        while cur.next is not None:
            cur = cur.next
        cur.next = Node(value)

    def print_all(self):
        cur = self.head
        while cur.next is not None:
            print(cur.data)

등을 다시 해보았다.

 

추가적으로 코딩 테스트 문제 학습을 진행

* 양궁대회

저작자표시 비영리 변경금지 (새창열림)

'TIL' 카테고리의 다른 글

9-20[개념정리] 토큰 관련 개념 재정리 및 알고리즘 복습  (1) 2022.09.20
9-18[알고리즘] 복습 - 링크드 리스트 구현 심화, 이진탐색, 재귀함수, 정렬 등  (0) 2022.09.18
9-14[코딩테스트] 테스트 간단 회고  (0) 2022.09.14
9-9[알고리즘] 프로그래머스  (0) 2022.09.09
9-8[알고리즘] 프로그래머스  (0) 2022.09.08
    'TIL' 카테고리의 다른 글
    • 9-20[개념정리] 토큰 관련 개념 재정리 및 알고리즘 복습
    • 9-18[알고리즘] 복습 - 링크드 리스트 구현 심화, 이진탐색, 재귀함수, 정렬 등
    • 9-14[코딩테스트] 테스트 간단 회고
    • 9-9[알고리즘] 프로그래머스
    새벽_나그네
    새벽_나그네
    IT, 프로그래밍, 정보, 스마트스토어

    티스토리툴바