알고리즘 7

[알고리즘] DP 공부하기(4) - 백준 12865 평범한 배낭

작성자이재영일 시2024. 11. 12 (화) 18:00 ~ 21:00장 소복지관 B-128-1호참가자 명단임혜진,  장원준, 이재영, 성창민, 김명원 사 진이번 모각코에서는 백준 골드 수준의 DP 문제를 풀어보았다. 앞으로 어려운 문제를 대비하며 기초를 탄탄히 다지는 중이다. 다음은 이번에 풀어본 문제와 그 풀이 과정을 정리한 내용이다.1. 백준 12865번 - 평범한 배낭 (0/1 Knapsack 문제)문제물건 N개가 있고, 각 물건은 무게 W와 가치 V를 가지고 있습니다. 배낭에는 최대 K의 무게까지 담을 수 있으며, 우리는 배낭에 담을 수 있는 물건들의 가치 합이 최대가 되도록 선택하고자 합니다.즉, 물건을 적절히 선택하여 배낭에 담았을 때 얻을 수 있는 최대 가치를 구하는 문제입니다.입력첫 줄..

카테고리 없음 2024.11.12

[알고리즘] DP 공부하기(3) - (백준 1003 피보나치 함수, 백준 9095 1,2,3 더하기, Python)

작성자이재영일 시2024. 11. 05 (화) 18:00 ~ 21:00장 소미래관 429호 자율주행스튜디오참가자 명단임혜진, 이재영, 성창민, 김명원, 장원준 사 진더보기목차1. 백준 1003 피보나치 함수2. 백준 9095 1,2,3 더하기이번 모각코도 백준 실버수준에 DP문제를 풀어보려고 한다.1. 백준 1003 피보나치 함수문제fibonacci(3)을 호출하면 다음과 같은 일이 일어난다.fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다.fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다.두 번째 호출한 fibonacci(1)은 1을 출력하고 1을 리턴한다.fibonacci(0)은 0을 출력하고,..

카테고리 없음 2024.11.05

[알고리즘] DP 공부하기(2) - (백준 1463, 1로 만들기, Python)

작성자이재영일 시2024. 10. 31 (목) 18:00 ~ 21:00장 소미래관 424호 자율주행스튜디오참가자 명단임혜진, 이재영, 성창민, 김명원, 장원준 사 진이번 모각코는 지난 시간에 공부했던 DP를 활용하여 관련 백준 문제를 풀어볼 것이다.1. 백준 1463 - 1로 만들기문제정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 정..

카테고리 없음 2024.10.31

[알고리즘] DP 공부하기(1) - 접근

작성자이재영일 시2024. 10. 29 (화) 18:00 ~ 21:00장 소미래관 429호 자율주행스튜디오참가자 명단임혜진, 이재영, 성창민, 김명원, 장원준 사 진더보기목차DP란?DP의 특징DP 문제를 푸는 법이번 주차에 파이썬을 사용한 알고리즘을 공부해보려고 한다. 알고리즘 때 DP를 공부하는데 뭐가 뭔지 감은 잡히는데 실제 문제에 적용시키는 것에 어려움을 많이 느꼈다. 그래서 이번 주차부터 파이썬을 사용한 알고리즘을 시작해보려고 한다.1. DP란?DP(Dynamic Programming)은 주어진 문제를 해결하기 위해 큰 문제를 여러 개의 작은 문제로 나누고, 각 작은 문제의 해답을 저장하여 중복 계산을 피하는 알고리즘 기법이다. 주로 최적의 해를 찾는 문제에 사용되며, 부분 문제 최적화와 중복 ..

카테고리 없음 2024.10.29

[알고리즘] Merge sort & Quick sort

작성자장원준일 시2024. 10. 01 (화) 18:00 ~ 21:00장 소복지관 b128-1호참가자 명단임혜진, 이재영, 성창민, 김명원, 장원준 사 진    오늘은 알고리즘 강의 시간에 배우는 merge sort 와 Quick sort 에 대해서 공부를 했다.  먼저 Merge sort  Merge Sort는 분할 정복(Divide and Conquer) 알고리즘의 대표적인 예시입니다. 리스트를 더 작은 부분으로 분할한 후, 각 부분을 정렬하고, 마지막에 다시 합병하여 최종 정렬된 리스트를 얻는 방식으로 동작합니다. Merge Sort의 시간 복잡도는 항상 O(nlog⁡n)O(n \log n)O(nlogn)입니다. Merge Sort의 단계분할 (Divide): 리스트를 두 개의 하위 리스트로 나눕니..

카테고리 없음 2024.10.01

[알고리즘] JAVA 자료구조(2) - Queue

작성자이재영일 시2024. 9. 3 (화) 18:00 ~ 21:00장 소미래관 429호 자율주행스튜디오참가자 명단임혜진, 이재영, 성창민, 김명원, 장원준 사 진더보기목차큐란?큐의 특징사용법백준 풀이이번 주차에는 Java를 사용하여 자료구조의 대표적인 큐(Queue)를 공부해볼 것이다.1. 큐란?큐는 데이터를 한줄로 세운 형태의 자료구조이다. 데이터가 들어오는 방향과 나가는 방향이 하나 씩 존재하는 형태로 가장 처음에 삽입된 자료가 가장 먼저 삭제되는 선입선출(First-In-First-Out) 구조이다. 실생활에서는 번호표를 이용한 줄서기 등을 예시로 볼 수 있다. 여기서 가장 앞에 있는 데이터 즉, 큐의 앞을 일반적으로 'front' 또는 'head'라고 부르고, 가장 끝에 있는 데이터 즉, 큐의 끝..

카테고리 없음 2024.09.10

[알고리즘] JAVA 자료구조(1) - Stack

작성자이재영일 시2024. 9. 3  (화) 18:00 ~ 21:00장 소미래관 자율주행스튜디오 429호참가자 명단임혜진, 이재영, 성창민, 김명원, 장원준 사 진더보기목차스택이란?스택의 특징사용법백준 풀이이번 학기 모각코에서 Java를 사용한 알고리즘을 공부해볼 것이다. Java는 현재 한국에서 가장 많이 사용되는 언어라고 봐도 무방할 정도의 인지도를 가졌는데, 아마도 Java 프레임워크인 Spring 때문일 것이다. 이번 모각코를 통해 Java 활용 능력을 기르고, 이후 Spring 스터디까지 나아가볼 것이다. 1. 스택이란?스택은 데이터를 차곡차곡 쌓아 올린 형태의 자료구조이다. 한쪽에서만 데이터를 넣고 뺄 수 있는 제한적으로 접근할 수 있는 형태로 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 ..

카테고리 없음 2024.09.03