openAI
openAI
스터디원으로부터 openAI 에 대해 알게 되었다.
https://beta.openai.com/overview
회원가입을 하면 playgroud 에서 AI 테스트를 해볼 수 있다.
https://beta.openai.com/playground
아래는 연속합 문제를 풀기위한 알고리즘을 openAI 로 구현해본 사례이다.
연속합문 https://www.acmicpc.net/problem/1912
```java title=”dp.java” public class DpClass { public static void main(String[] args) { int[] arr = {-7, 4, -3, 6, 3, -8, 3, 4}; System.out.println(“Max Sum : “ + getMaxSum(arr)); }
public static int getMaxSum(int[] arr) {
int[] dp = new int[arr.length + 1];
dp[1] = arr[0];
for(int i = 2; i < dp.length; i++) {
dp[i] = Math.max(dp[i - 1] + arr[i - 1], arr[i - 1]);
}
int max = dp[1];
for(int i = 2; i < dp.length; i++) {
if(max < dp[i]) {
max = dp[i];
}
}
return max;
} } ```
:::info 동적계획법이란? https://hongjw1938.tistory.com/47
DP, 즉 다이나믹 프로그래밍(또는 동적 계획법)은 기본적인 아이디어로 하나의 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 것으로 특정한 알고리즘이 아닌 하나의 문제해결 패러다임으로 볼 수 있다.
Richard Bellman이 1950년대에 사용한 단어로 이름은 그냥 멋있어 보여서 그렇게 지어졌으니 신경 쓰지 않아도 된다.
큰 문제를 작은 문제로 쪼개서 그 답을 저장해두고 재활용한다. 그래서 혹자는 DP가 아닌 ‘기억하며 풀기’라고 부르기도 한다. :::