
코드잇 강의를 듣고 정리한 알고리즘 문제들 입니다. 분할 정복(Divide and Conquer) : 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 알고리즘 분할 정복 3단계 - 1. Divide(분할) - 2. Conquer(정복 == 풀기) - 3. Combine(합치기) 1 . 1부터 n까지의 합 구하기 조건 -함수명 : consecutive_sum -매개변수명 : start, end (end > start) - start부터 end까지의 합 리턴 풀이 def consecutive_sum(start, end): # base case if end == start: return start # 부분 문제를 반으로 나눠주기 위해서 문제의 정중앙을 정의한다 (Divide) mid = (..

🔥 코드잇 대학생 코딩 캠프 5기 후기 🔥 5월 3일(월) ~ 6월 1일(화)까지 진행됐던 5기 활동을 마치고 드디어 수료 키트를 받았다!! 수료 키트는 월요일날 도착해서 받았지만, 미루고 미루다 이제야 후기를 쓰게 되었다😂 수료 키트 받는 걸 정말 기다렸는데, 도착한 수료 키트가 든 우편물이 구겨져서 도착했다🤦🏻♀️ 우체부 아저씨가 일반 서류인 줄 알고 반으로 접어서 우편함에 넣어두었더라.. 대외활동 인증서만이라도 따로 pdf파일로 줬으면 좋았을 것 같다. 그러면 적어도 구겨진 대외활동 인증서를 받아도 새로 뽑을 수 있었을 텐데 말이다.😕 한 달 동안 꽤 만족스럽게 활동을 했던 터라 이 부분이 좀 아쉬웠다. ※ 글이 좀 길어 추천인지 비추천인지만 보고 싶다면 맨 밑만 봐도 상관없다※ 👉🏻 코드잇 대학..

코드잇 강의를 듣고 정리한 알고리즘 문제들 입니다. Brute Force : 무차별 대입으로 가능한 모든 경우에 대해 모두 탐색하여 조건에 충족되는 결과만 가져옴 장점 : 직관적이고 명확, 답을 확실하게 찾을 수 있음 단점 : 비효율적임 그럼에도 불구하고 알아야하는 이유 : 효율적인 알고리즘을 찾는 가장 기본적인 접근 방법이기 때문 1. 카드 뭉치 최대 조합 구하기 조건 -함수명 : max_product -매개변수명 : 카드 뭉치1(left_cards), 카드 뭉치2(right_cards) -카드 뭉치1과 카드 뭉치2에서 카드를 하나 뽑아서 곱했을 때 그 값이 최대가 되는 값을 반환 풀이 # 시간 복잡도 : O(mn) (m은 left_cards의 갯수, n은 right_cards의 갯수) def max_..

코드잇 강의를 듣고 정리한 알고리즘 문제들 입니다. 재귀 함수(Recursive Function) : 자기 자신을 호출하는 함수 재귀적으로 문제를 푼다는 것 : 부분 문제(같은 형태의 더 작은 문제)의 답을 이용해서 기존 문제를 푸는 것 1. 피보나치 수열 구현하기 조건 -함수명 : fib -매개변수명 : 받을 자연수(n) -10번째 항까지 출력하기 풀이 # 시간 복잡도 : O(2^n) def fib(n): # base case if n < 3: return 1 # recursive case return fib(n-1) + fib(n-2) # 테스트 for i in range(1, 11): print(fib(i)) 2. 숫자 합 구하기 조건 -함수명 : triangle_number -매개변수명 : 받을 ..

코드잇 강의를 듣고 정리한 알고리즘 내용 입니다. 1. 알고리즘 평가의 기준 1) 시간복잡도 : 얼마나 빠르게 실행되는지 2) 공간복잡도 : 얼마나 많은 공간이 필요한지 2. 복잡도 계산과 관련해서 알고 있으면 좋은 수학 개념 1) 거듭제곱 2) 로그 3) 1~n 까지의 합 3. 점근 표기법(Big-O Notation) 1) 점근 표기법 - 원 함수를 단순화시켜 최고차항의 차수만 고려하는 것 - ex) 원 함수 : 2(n^2) + 8n + 157 / 점근 표기법 : O(n^2) 2) 점근 표기법의 의미 - n의 차수가 클수록 시간이 많이 소요된다는 것을 알 수 있음 - 컴퓨터의 사양이 아무리 좋아도, 아무리 빠른 언어로 코딩을 해도 알고리즘이 별로면 한계가 있다는 것을 알려줌 4. 알고리즘 평가 주의 사..

코드잇 강의를 듣고 정리한 알고리즘 문제들 입니다. 선형 탐색 알고리즘 : 리스트의 처음부터 끝까지 순서대로 처음부터 하나씩 탐색하여 값을 찾는 것 이진 탐색 알고리즘 : 정렬된 리스트를 반씩 나누어 검색하여 값을 찾는 것 1 . 선형 탐색(Linear Serch)알고리즘 구현해보기 조건 -함수명 : linear_search -매개변수명 : 탐색할 값(element), 받을 리스트(some_list) -반환값 : element가 있을 경우 some_list의 인데스 반환, 없으면 None 반환 -for문 사용, element in some_list 사용 금지 풀이 # 시간 복잡도 : O(n) def linear_search(element, some_list): for i in range(len(some_..

코드잇 강의를 듣고 정리한 알고리즘 문제들 입니다. 컴퓨터 알고리즘 : 컴퓨터가 어떤 문제를 해결하기 위해서 컴퓨터가 이해할 수 있는 방식으로 정리되어 있는 해결 방법 1. 팔린드롬 체크 함수 구현 - "토마토" 나 "기러기"처럼 거꾸로 읽어도 똑같은 단어를 팔린드롬이라고할 때, 문자열 word가 팔린드롬인지 확인하는 함수를 만들어 해결해보기 조건 -함수명 : is_palindrome -매개변수명 : word -반환값 : 팔린드롬일 시 True , 아닐 시 False 풀이1 -내장함수(join,reversed)사용 def is_palindrome(word): reverse_word = "".join(reversed(word)) if reverse_word != word: return False retur..

들어가기 개발자로 살아간다면 좋은 코드에 대한 고민은 끝없이 해야 한다고 한다. 그래서인지 이와 관련된 서적도 많이 있다. 내가 추천받은 책들은 개발자의 글쓰기 (김철수 저 | 위키북스 | 2019년 10월 04일 출간) Clean Code 클린 코드 (로버트 C. 마틴 저 | 박재호, 이해영 역 | 인사이트 | 2013년 12월 24일) 나중에 기회가 된다면 읽고 꼭 후기를 남기도록 하겠다. 그렇다면 이제 좋은 코드란 무엇인지 알아보도록 하자. 좋은 코드란? 1. 적절한 Comment 를 사용한 코드 코멘트를 남발하면 가독성이 떨어지지만, 기능마다 주의해야 할 점을 적어두면 도움이 된다. 2. 이름을 잘 지은 코드 다른 사람이 보았을 때, 이 변수나 함수 등이 어떤 기능을 하는지 이름만 보아도 알 수 ..
- 이진탐색
- 프로그래머스
- 프로그래밍언어
- 코딩테스트
- KAKAO
- 파이썬문법
- 프로그래머스코딩테스트
- GIT
- 월간 코드 챌린지 시즌2
- 프로그래머스문제
- 설치
- 코드잇
- 피보나치
- 정렬
- 파이썬
- SWiFT
- 프로그래머스 프로그래머스문제
- 유닉스커맨드
- 문법
- level1
- 알고리즘
- 백준
- level2
- x만큼간격이있는n개의숫자
- 조합
- Summer/Winter Coding(~2018)
- 컴퓨터개론
- 재귀함수
- 월간 코드 챌린지 시즌1
- 알고리즘문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Total
- Today
- Yesterday