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

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

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

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

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

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.