다이나믹 프로그래밍은 전형적으로 보텀업 방식 형태를 보인다. 그렇지만 탑다운 방식과 보텀업 방식의 차이를 알아볼 필요가 있다. 상향식, 하향식에 따라 재귀호출인지 반복호출인지의 차이도 보여지기 때문이다. 1. 탑다운 방식 (Top-down) 재귀 함수를 이용하여 DP를 작성하는 방법. 큰 문제를 해결하기 위해 작은 문제를 호출한다. d = [0] * 100 def fibo(x): print('f(' + str(x) + ')', end=' ') if x == 1 or x == 2: return 1 if d[x] != 0: # 이미 계산한 적 있으면 그대로 값을 반환한다. return d[x] d[x] = fibo(x-1) + fibo(x-2) return d[x] * 실행 결과 f(10)을 구하기 위해서 ..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 만능 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험했던 내용과 공부했던 내용을 기록합니다. 🐻❄️☁️1. Stack 스택 자료구조 선입후출 (First In Last Out) 구조 stack = [] stack.append(1) # push 를 append()로 구현한다. stack.append(2) stack.append(3) stack.pop() stack.append(4) print(stack) # 스택의 가장 밑에 있는 원소부터 출력 print(stack[::-1]) # 스택 가장 위에 있는 원소부터 출력 [1, 2, 4] [4, 2, 1] 파이썬에서 stack 자료구조를 구현하기 위해서는 이렇게 다른 라이브러리가 필요없이, list 구조에서 append()와 pop()으로 간단히 구현할 수 있다. 2. Queue 큐 자료구조 선입선출 (First In First Out) 구조 , 나중에 온 사..
https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 간단한 구현문제 ! 초기값을 1 1 1 이라고 가정하고 우리가 구하고자 하는 준규네 나라의 날짜와 같은 e s m이 나올때 까지 하나씩 더해가면서 값을 비교한다 e, s, m = map(int, input().split()) a, b, c = 1, 1, 1 # 초기값 count = 1 while True: if a == e and b == s and c == m: print(count) break if..
는 내가 보려고 정리... !!!!! 올해 취업하려구욧 다우기술(키움SM 기준) / 다우키움그룹> 계약: 4800만(올해 개발직군 1000만 상승) 성과급: 960만(2년차부터 키움SM 기준 연봉 20%, 그 외는 10%만) 복지포인트: 200만 명절귀향여비: 20만(각 상품권 10만씩) 휴가비: 30만 생일쿠폰: 3만 +복날 선물: 10만 계약: 4700만 PI/PS: 940만(평고과20%기준, 평고과13~30%사이) 중식대: 144만(월 12만) 복지포인트: 100만 개인연금지원금: 110만(연차 따라 250만까지 상승) +오픽응시: 연 2회 지원(15만원 가량) ※참고: 2년차부터 고성과자 프리미엄인센티브 3~15프로 ※참고: 자격증지원금 연 2회 100만원 지원(합격해야함) ※참고: 의료비 1만원..
유형 : 구현 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 이 문제에서 어렵다고 느껴졌던 점은 바라보는 '방향'도 고려해서 새로운 좌표로 이동시키는 것이었다. 현재 바라보는 방향을 t라고 이름붙이겠다. 옆의 그림과 같이, 문제에서 북-동-남-서 순서대로 바라보는 방향을 지정했다. 그리고 북쪽을 바라보는 상황에서 앞으로 한칸 전진하면 서쪽, 동쪽을 바라보는 상황에서 앞으로 한칸 전진하면 북쪽, 남쪽을 바라보는 상황에서 앞으로 한칸 전진하면 ..
https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 문제! 이 문제는 그리디 유형이다 알파벳 중에서 가중치가 높은 순서대로 9 8 7 ~ 0 숫자를 부여해주어야 하기 때문이다. 가중치는 자리수 !!! 라고 생각하면 된다 그러면 쉽게 풀린다 예를들어 입력으로 GCF ACDEB 가 입력되었으면 A는 만의 자리이므로 10000 라는 가중치를 가지게 되고 C의경우는 첫번째 단어에서는 10 , 두번째 단어에서는 1000 이므로 총 1010 라는 가중치..