분류 전체보기

    [1028알고리즘 08]배열 vs 링크드리스트

    배열 링크드리스트특징 배열 링크드리스트 정의 같은 종류의 데이터들이 순차적으로 저장되는 자료구조 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다 특정원소 조회 원소에 즉시 접근 0부터 시작하는 인덱스 존재O(1) 리스트 특정원소 접근시 연결고리를 따라 탐색 O(N) 원소를 삽입/삭제 O(n) O(1)의 시간복잡도 앞뒤 포인터만 변경 원소 새로 추가 모든 공간 다 차면 새로운 공간 할당 모든 공간 다 차도 맨 뒤에 노드만 동적추가 특징 크기가 정해진 데이터 공간, 변경 불가,데이터 접근하는 경우가 빈번하면 Array 리스트는 크기가 정해지지 않은 데이터 공간삽입 삭제 빈번하면 LinkedList python 배열은 list 라고 부름 append 를 함 ..

    [1028알고리즘 07]최소변경횟수

    #Q. 0과 1로만 이루어진 문자열이 주어졌을 때, 이 문자열에 있는 모든 숫자를 전부 같게 만들려고 한다. 할 수 있는 행동은 문자열에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미한다. # 예를 들어 S=0001100 일 때,전체를 뒤집으면 1110011이 된다. # 4번째 문자부터 5번째 문자까지 뒤집으면 1111111이 되어서 2번 만에 모두 같은 숫자로 만들 수 있다. # 하지만, 처음부터 4번째 문자부터 5번째 문자까지 문자를 뒤집으면 한 번에 0000000이 되어서 1번 만에 모두 같은 숫자로 만들 수 있다. # 주어진 문자열을 모두 0 혹은 모두 1로 같게 만드는 최소 횟수를 반환하시오. input="01110" def fin..

    [1028알고리즘 06] 정수입력 시 그 이하 소수 출력

    제곱근 이하만 계산하면된다 : 18의 약수 3*6, 6*3 도 됨.. 제곱근 이하만 확인하면 OK 설명 참고 >> www.it-note.kr/308 # 005 정수입력시 그이하 소수 출력 number = 20 # 소수 : 약수가 1과 자기자신밖에 없는것. # N이 N의 제곱근보다 크지 않은 어떤소수로도 나눠지지 않는다. def find_prime_list_under_number(number): prime_list = [] count = 0 for n in range(2, number + 1): for i in prime_list: count += 1 if n % i == 0 and i * i

    [1028알고리즘 05] 반복되지 않은 첫번째 문자출력

    # Q. 다음과 같이 영어로 되어 있는 문자열이 있을 때, 이 문자열에서 반복되지 않는 첫번째 문자를 반환하시오. 만약 그런 문자가 없다면 _ 를 반환하시오. # "abadabac" # 반복되지 않는 문자는 d, c 가 있지만 "첫번째" 문자니까 d를 반환해주면 됩니다! import re #input = "abadabac" input = "abab" def find_not_repeating_first_character(input): ascii_a = ord("a") ascii_z = ord("z") occured_alphabet = [0] * (ascii_z - ascii_a + 1) # print(ord("z")-ord("a")+1) input_param = input.lower() input_para..

    반응형