다이나믹 프로그래밍이란? 다이나믹 프로그래밍이란 큰 문제를 해결하기 위해서 큰 문제를 구성하고 있는 작은 문제들을 먼저 하나씩 해결해나가는 프로그래밍 기법입니다. 이 기법은 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간 내에 풀 때 사용합니다.이 기법은 최단거리 문제, 행렬 제곱 문제 등의 최적화에 사용되곤 합니다. 왜냐면 다이나믹 프로그래밍 이라는 것이 어떤 문제의 모든 방법을 검토한 뒤에 최적을 찾아내기 때문 입니다. 이러한 방법은 매우 무식하고 단순한 방법처럼 보이기도 하지만 가능한 모든 방법을 찾는데 큰 시간이 걸리지 않는 경우에는 가장 적합한 방법이라고 할 수도 있습니다.모든 방법을 찾아야 한다는 단점을 해결하기 위해 그리디 알고리즘 이라는 기법..
2018 카카오 블라인드 코딩 1차 http://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1/카카오 에서는 블라인드 전형으로 공채 채용을 하고 있는데요, 이번 포스팅에선 2018년 1차 문제에 대해 살펴보겠습니다. 1차 문제는 총 7문제로 구성되어 있는데요, 5시간동안 4문제 이상 풀어내면 합격이라고 합니다. 언어는 어떤 언어든 상관 없으며 C, C++, JAVA, PYTHON 등 다양한 언어가 사용되었다고 합니다.4. 셔틀버스 - 문제 카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 ‘크루’라고 부르는데, 아침마다 많은 크루들이 이 셔틀을 이용하여 출근한다.이 문제에서는 편의를 위해 ..
- 백준 알고리즘 : https://www.acmicpc.net/problem문제다음 소스는 N번째 피보나치 함수를 구하는 함수이다.int fibonacci(int n) {if (n==0) { printf("0"); return 0; } else if (n==1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); }} fibonacci(3)을 호출하면 다음과 같은 일이 일어난다.fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다.fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다.두 번째 호출한 fibonacci(1)은 1을..
1차원 list 의 합 구하기 a = [1,2,3]sum(a) 1차원 list 의 경우 다음과 같이 sum() 함수를 사용해주면 됩니다. 아주 간단히 6이 출력되는 것을 확인할 수 있습니다. 하지만 2차원 list 의 경우 sum() 함수를 사용했을 경우 TypeError: unsupported operand type(s) for +: 'int' and 'list' 에러가 발생하는 것을 알 수 있습니다. 2차원 이상 list 의 합 구하기 리스트의 합을 구하다가 int 값이 아닌 list 값을 만나면 그 안의 합을 구해주는 방식으로 재귀함수를 구성해야 2차원 이상의 list 합을 구할 수 있습니다.lst = [ [ 1, [1,1,1,1], 1 ] , [ 1,1,1 ] ] def sum_list(lst, ..
- Total
- Today
- Yesterday
- MLP
- 신입 공채
- 파이썬
- 지도학습
- 백준
- 리트
- python
- 카카오
- 광명
- 블라인드 코딩
- 의사결정트리
- Oracle
- 머신러닝
- 시흥
- 로스쿨
- sql
- KNN
- 넘파이
- 리눅스
- ALIAS
- ML
- 첨단산업단지
- 알고리즘
- 일반산업단지
- dict
- 딥러닝
- 산업단지
- PPT
- 코딩테스트
- 블라인드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |