개발기초42 알고리즘: 시간 복잡도와 공간복잡도 알고리즘을 계산하는 복잡도의 척도로는 시간 복잡도(속도)와 공간 복잡도(공간)가 있다. 현대에 들어서 대용량 시스템이 쉽게 구축됨에 따라서, 시간 복잡도 개념이 더 중요해졌다. 실무에서 개발자들이 시간 복잡도를 고려하는 것은 매우 중요한 이슈이다. 구성된 알고리즘에 따라 소프트웨어를 실행하는데 수 초가 차이 날 수 있으며, 단 몇 초의 차이만으로 사용자들이 어느 소프트웨어를 사용하는데 느끼는 만족도는 크게 달라질 수 있기 때문이다. 시간과 공간은 반비례적 경향이 있다. 그래서 공간을 희생해서라도 시간 복잡도를 낮추는 것이 많이 요구된다. 프로그램 성능을 크게 향상시켜 사용자를 만족시키는 편이 좋을 것이다. 시간 복잡도 프로그램의 성능을 분석하는 방법 중 하나이다. 시간 복잡도란, 작성된 알고리즘이 어떤 .. 개발기초 2022. 11. 22. 알고리즘 : 기본 예제, 빈도수 찾기 어느 한 문제를 해결하는 데 두 가지 방식이 있다. 보다 효과적인 알고리즘을 찾기 위해서 고려해야할 것은 무엇일까? 먼저, 다음 문제를 해결해보는 시간을 가져보고, 어느 방식이 효율적일지 고려해보는 시간을 갖는다. 본격적으로 문제를 풀어보기에 앞서, 어떤 알파벳이 가장 많이 포함되어있는지 반환해보는 문제를 풀어본다. 알파벳 빈도수 찾아보기. def find_alphabet_occurrence_array(string): alphabet_occurrence_array = [0] * 26 # 이 부분을 채워보세요! return "a" print(find_alphabet_occurrence_array("hello my name is sparta")) 해법 def find_alphabet_occurrence_ar.. 개발기초 2022. 11. 22. 알고리즘 : 파이썬 기본 예제, 리스트 안의 최댓값 찾아보기 다음의 코드를 기초로 최댓값을 찾아보는 알고리즘 작성해보기 input = [4, 7, 5, 3, 2, 8] def find_max_num(array): # 이 부분에 알고리즘을 채워보자! return ? result = find_max_num(input) print(result) 우리는 직관적으로 8이 리스트 안에서 가장 큰 값이라는 생각이 들지만, 컴퓨터가 직접 어떤 규칙에 따라 최댓값을 찾아 볼 수 있도록 명령어를 입력해줘야 한다. 한 번 직접 코드를 작성해보고 다음 해답을 살펴보자 기본적으로 비교할 변수를 설정해줬다. 첫 번째 방식 : 두 변수를 설정하고, 한 변수가 항상 값이 컸을 때만 반환하기 - 작성할 함수에는 for문을 활용하는데, num과 compar_num 두 개 변수 설정하였고, 변수 .. 개발기초 2022. 11. 22. 알고리즘: 알고리즘의 의미와 필요성(개발자 입문) 알고리즘이란? 특정 문제를 해결하기 위해, 입력된 자료를 바탕으로 원하는 출력을 유도하는 규칙의 집합이다. 알고리즘은 여러 단계의 유한 집합으로 구성되며, 각 단계는 하나 또는 그 이상의 연산을 필요로 한다. 즉, 어떤 문제가 있을 때, 그것을 해결하기 위한 여러 동작들의 모임이다. 하나의 문제를 해결하기 위해서 다양한 해법이 존재할 수 있다. 중요한 점은 다양한 해법 중에 어떤 것이 가장 효과적인 방법인지 고려해야한다. 보유하고 있는 자원(시간, 노력, 금전)의 투입에 따라 효과적으로 산출량을 만들어내는 방법은 달라질 수 있으며 투입과 그 산출의 가장 최적점을 찾는 어떤 방법이 있을 수 있다. 알고리즘을 공부할 필요성 개발자는 프로그램을 만드는 직업이며, 좋은 개발자가 되려면 좋은 프로그램을 구현할 줄.. 개발기초 2022. 11. 22. 파이썬 기초문법 뽀개기 : map, lamda, filter !! 리스트 내의 원소 활용 @ map() 활용 map(함수, 리스트) 첫번째, map()식이 활용된 보통의 형태 - 리스트의 원소를 조작하기 people = [ {'name': 'bob', 'age': 20}, {'name': 'carry', 'age': 38}, {'name': 'john', 'age': 7}, {'name': 'smith', 'age': 17}, {'name': 'ben', 'age': 27}, {'name': 'bobby', 'age': 57}, {'name': 'red', 'age': 32}, {'name': 'queen', 'age': 25} ] def check_adult(person): if person['age'] > 20: return '성인' else: return '청소년' result = ma.. 개발기초 2022. 11. 21. 파이썬 기초문법 뽀개기 : 한 줄의 마법, 코드 줄여쓰기 if문 삼항연산자 사용시, 다음과 같이 활용이 가능하다. 예시1 people = [ {'name': 'bob', 'age': 20}, {'name': 'carry', 'age': 38}, {'name': 'john', 'age': 7}, {'name': 'smith', 'age': 17}, {'name': 'ben', 'age': 27}, {'name': 'bobby', 'age': 57}, {'name': 'red', 'age': 32}, {'name': 'queen', 'age': 25} ] def check_adult(person): if person['age'] > 20: return '성인' else: return '청소년' result = map(check_adult, people) print.. 개발기초 2022. 11. 21. 파이썬 기초문법 뽀개기 : 파일 불러오기 파일 불러오기 파일을 분리하여 프로그램을 작성했을 때 한 파일에서 또다른 파일로 작성한 코드를 불러올 수 있다. 1) main_func.py에는 복잡한 코드를 작성해놓고, main_test.py에서 프로그램을 실행할 경우. main_test.py에서 프로그램 실행 from main_func import * say_hi() say_hi_to('영수') 실행결과 ==> 안녕! 영수님 안녕하세요. main_func.py에만 작성했던 코드가 실행된다. from (불러올 파일의) import (불러올 대상) from (불러올 파일의) import * (전부를 불러올 때는 * 별표시를 기재한다. 95%빈도로 활용) 2) main_func 파일에서 say_hi_to 함수만 불러올 경우 from main_func im.. 개발기초 2022. 11. 21. 파이썬 기초문법 뽀개기 : f-string, 예외처리 try-except 문 f-string f-string을 활용하면 문자열을 표현할 때 굉장히 간단해진다. f를 붙여주고, 중괄호로 변수를 넣어주면 된다. 중간에 넣을 변수가 많아질 때 더 쉽고 깔끔한 코드 작성이 가능하다. scores = [ {'name':'영수','score':70}, {'name':'영희','score':65}, {'name':'기찬','score':75}, {'name':'희수','score':23}, {'name':'서경','score':99}, {'name':'미주','score':100}, {'name':'병태','score':32} ] for s in scores: name = s['name'] score = s['score'] print(name+'의 점수는 '+str(score)+'점입니다.'.. 개발기초 2022. 11. 21. 파이썬 기초문법 뽀개기 : 튜플과 집합 튜플 자료형 튜플은 리스트형과 유사하다. 리스트는 순서가 있는 자료형이다. 다음 형태이다. 중간에 '감'을 '수박'으로 변경할 수 있다. a = ['사과', '감', '배'] a[1] = '수박' print(a) 출력결과 ==> ['사과', '수박', '배'] 다음은 튜플이다. '순서가 있는 자료형'이라는 점에서 동일하다 하지만 차이점이 느껴지는가? 괄호가 다르다. a = ('사과', '감', '배') print(a) 출력결과 ==> ('사과', '', '배') 중요한 특징은 '불변형'이다. 즉 요솟값을 바꿀 수 없다. a = ('사과', '감', '배') a[1] = '수박' print(a) 실행결과 ==> 에 발생 Traceback (most recent call last): File "C:\User.. 개발기초 2022. 11. 21. 파이썬 기초문법 뽀개기 : 반복문과 함수 반복문에서 많이 활용하는 for문 그리고 함수 활용에 대해서 배워본다. 반복문 - 반복문을 사용하면, 반복적인 입력 줄일 수 있다?! 리스트안에 있는 요소들을 하나씩 꺼내서 써먹는다. fruits = ['사과', '배', '감', '수박', '딸기'] for fruit in fruits: print(fruit) 실행결과 ==> 사과 배 감 수박 딸기 전형적인 활용 사례 - 리스트 people 안에 딕셔너가 들어가있고, for문이 돌아가면서 조건에 맞는 것들만 출력하게 만들었다. people = [ {'name': 'bob', 'age': 20}, {'name': 'carry', 'age': 38}, {'name': 'john', 'age': 7}, {'name': 'smith', 'age': 17}, {.. 개발기초 2022. 11. 21. 파이썬 기초문법 뽀개기 : 조건문 조건문에서 기본적으로 다루는 IF, IF else, elif 의 활용법에 대해서 배운다. 조건문 주의할 점 : 콜론을 사용하고나면, 들여쓰기를 해야한다. 만약 :(콜론) 사용 이후, 들여쓰기를 하지 않으면, 해당 조건문에 포함되는 문장이 아니다. 예시1 money = 3000 if money > 3800: print('택시를 타자!') else: print('택시를 못타~') print('그럼 뭘타지?') 실행결과 ==> 택시를 못타~ 그럼 뭘타지? 예시2 money = 3000 if money > 3800: print('택시를 타자!') else: print('택시를 못타~') print('그럼 뭘타지?') 실행결과 ==> 택시를 못타~ 그럼 뭘타지? 예시1과 예시2는 실행결과가 동일해보이지만, 사실 .. 개발기초 2022. 11. 21. 파이썬 기초문법 뽀개기 : 리스트와 딕셔너리 파이썬 이론을 빠르게 습득하고 강의수강. 문법을 외우는 것이 아니라, 실습하며 퀴즈로 숙달하게 만드는데 목적으로 강의를 수강함. 파이썬을 설치했다는 것은, 번역팩을 설치한다고 생각하면 된다. 컴퓨터는 101010011 같은 얼어만 알아듣기 때문에 파이썬 문법으로 된 것을 101010011로 변환해줄 수 있도록, 번역 패키지를 설치하는 것 변수. 변수는 값을 담는 박스이다. 컴퓨터 입장에서는 값이 담긴 위치를 가리킨다. 즉 컴퓨터가 기억하고 있는 메모리 공간을 가리킨다. 문자열 기초와 연산 매써드 str() 문자열로 선언할 수 있다. lent() 문자열 길이를 구할 수 있다. split() 인덱싱과 슬라이스 리스트와 딕셔너리 스파르타코딩클럽 이범규 강사님의 파이썬 문법 기초 강의 참고 리스트 : 값을 가져.. 개발기초 2022. 11. 21. 이전 1 2 3 4 다음